[jboss-cvs] JBossAS SVN: r86483 - projects/jboss-threads/trunk/jbossmc/src/main/java/org/jboss/threads/metadata.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Mar 30 16:03:22 EDT 2009
Author: david.lloyd at jboss.com
Date: 2009-03-30 16:03:22 -0400 (Mon, 30 Mar 2009)
New Revision: 86483
Modified:
projects/jboss-threads/trunk/jbossmc/src/main/java/org/jboss/threads/metadata/ThreadsMetaData.java
Log:
JBTHR-5 - use simple queue executor when core threads are allowed to time out
Modified: projects/jboss-threads/trunk/jbossmc/src/main/java/org/jboss/threads/metadata/ThreadsMetaData.java
===================================================================
--- projects/jboss-threads/trunk/jbossmc/src/main/java/org/jboss/threads/metadata/ThreadsMetaData.java 2009-03-30 19:26:43 UTC (rev 86482)
+++ projects/jboss-threads/trunk/jbossmc/src/main/java/org/jboss/threads/metadata/ThreadsMetaData.java 2009-03-30 20:03:22 UTC (rev 86483)
@@ -37,6 +37,7 @@
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ArrayBlockingQueue;
+import static java.lang.Math.max;
import org.jboss.xb.annotations.JBossXmlSchema;
import org.jboss.beans.metadata.spi.BeanMetaData;
import org.jboss.beans.metadata.spi.ValueMetaData;
@@ -221,14 +222,14 @@
if (corePoolSizeMetaData == null) {
corePoolSize = 0;
} else {
- corePoolSize = Math.max(calcPoolSize(corePoolSizeMetaData), 0);
+ corePoolSize = max(calcPoolSize(corePoolSizeMetaData), 0);
}
final PoolSizeMetaData maxPoolSizeMetaData = metaData.getMaxPoolSize();
final int maxPoolSize;
if (maxPoolSizeMetaData == null) {
maxPoolSize = corePoolSize;
} else {
- maxPoolSize = Math.max(calcPoolSize(maxPoolSizeMetaData), corePoolSize < 1 ? 1 : corePoolSize);
+ maxPoolSize = max(calcPoolSize(maxPoolSizeMetaData), max(1, corePoolSize));
}
final TimeMetaData timeMetaData = metaData.getKeepAliveTime();
final long time;
@@ -237,7 +238,7 @@
time = Long.MAX_VALUE;
unit = TimeUnit.NANOSECONDS;
} else {
- time = Math.max(0L, timeMetaData.getTime());
+ time = max(0L, timeMetaData.getTime());
final String unitName = timeMetaData.getUnit();
if (unitName == null) {
@@ -257,8 +258,8 @@
final String policyName = rejectPolicyMetaData == null ? "block" : rejectPolicyMetaData.getName();
final BeanMetaDataBuilder executorBuilder;
// here is where we decide which thread pool implementation to use
- // right now, our criteria is simple - if blocking is desired, use the queue executor instead
- if ("block".equals(policyName)) {
+ // right now, our criteria is simple - if blocking is desired or if core threads can time out, use the queue executor instead
+ if (metaData.isAllowCoreTimeout() || "block".equals(policyName)) {
// use SimpleQueueExecutor
executorBuilder = BeanMetaDataBuilder.createBuilder(SimpleQueueExecutor.class.getName());
final RejectionPolicy rejectionPolicy;
More information about the jboss-cvs-commits
mailing list