return count.add(perCpu.multiply(BigDecimal.valueOf((long)Runtime.getRuntime().availableProcessors()), MathContext.DECIMAL64), MathContext.DECIMAL64).round(MathContext.DECIMAL64).intValueExact();
}
private ModelNode parseTimeSpec(final XMLExtendedStreamReader reader) throws XMLStreamException {
final int attrCount = reader.getAttributeCount();
TimeUnit unit = null;
Long duration = null;
Set<Attribute> required = EnumSet.of(Attribute.TIME, Attribute.UNIT);
for (int i = 0; i < attrCount; i++) {
requireNoNamespaceAttribute(reader, i);
final String value = reader.getAttributeValue(i);
final Attribute attribute = Attribute.forName(reader.getAttributeLocalName(i));
required.remove(attribute);
switch (attribute) {
case TIME: {
duration = reader.getLongAttributeValue(i);
break;
}
case UNIT: {
unit = Enum.valueOf(TimeUnit.class, value.toUpperCase());
break;
}
default:
throw unexpectedAttribute(reader, i);
}
}
if (!required.isEmpty()) {
throw missingRequired(reader, required);
}
assert unit != null;
assert duration != null;
ParseUtils.requireNoContent(reader);
ModelNode node = new ModelNode();
node.get(TIME).set(duration);
node.get(UNIT).set(unit.toString());
return node;
}