[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