From 73310b6bc4a32c0a9b36a2ebb3b136709b52a61d Mon Sep 17 00:00:00 2001 From: jfclere Date: Wed, 21 Apr 2010 12:55:19 +0000 Subject: [PATCH] Fix for 43642. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@936289 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/catalina/core/StandardThreadExecutor.java | 16 ++++++++++++++++ webapps/docs/changelog.xml | 3 +++ webapps/docs/config/executor.xml | 4 ++++ 3 files changed, 23 insertions(+) diff --git a/java/org/apache/catalina/core/StandardThreadExecutor.java b/java/org/apache/catalina/core/StandardThreadExecutor.java index c78bc2de7..3b9a5d6b0 100644 --- a/java/org/apache/catalina/core/StandardThreadExecutor.java +++ b/java/org/apache/catalina/core/StandardThreadExecutor.java @@ -74,6 +74,11 @@ public class StandardThreadExecutor extends LifecycleBase protected String name; /** + * prestart threads? + */ + protected boolean prestartminSpareThreads = false; + + /** * The maximum number of elements that can queue up before we reject them */ protected int maxQueueSize = Integer.MAX_VALUE; @@ -101,6 +106,9 @@ public class StandardThreadExecutor extends LifecycleBase taskqueue = new TaskQueue(maxQueueSize); TaskThreadFactory tf = new TaskThreadFactory(namePrefix,daemon,getThreadPriority()); executor = new ThreadPoolExecutor(getMinSpareThreads(), getMaxThreads(), maxIdleTime, TimeUnit.MILLISECONDS,taskqueue, tf); + if (prestartminSpareThreads) { + executor.prestartAllCoreThreads(); + } taskqueue.setParent(executor); setState(LifecycleState.STARTING); @@ -172,6 +180,10 @@ public class StandardThreadExecutor extends LifecycleBase return name; } + public boolean isPrestartminSpareThreads() { + + return prestartminSpareThreads; + } public void setThreadPriority(int threadPriority) { this.threadPriority = threadPriority; } @@ -205,6 +217,10 @@ public class StandardThreadExecutor extends LifecycleBase } } + public void setPrestartminSpareThreads(boolean prestartminSpareThreads) { + this.prestartminSpareThreads = prestartminSpareThreads; + } + public void setName(String name) { this.name = name; } diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index efc56e114..a02c484b7 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -35,6 +35,9 @@
+ + 43642: Add prestartminSpareThreads attribute for Executor. (jfclere) + Update Servlet support to the Servlet 3.0 specification. Note asynchronous support is not yet complete. (markt/fhanik) diff --git a/webapps/docs/config/executor.xml b/webapps/docs/config/executor.xml index 05759a52d..41fe73747 100644 --- a/webapps/docs/config/executor.xml +++ b/webapps/docs/config/executor.xml @@ -102,6 +102,10 @@

(int) The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads. Default value is 60000(1 minute)

+ +

(boolean) Whether minSpareThreads should be started when starting the Executor or not, + the default is false

+
-- 2.11.0