From 46cc510966a3100abe5c6b8a6b7638eb35dde654 Mon Sep 17 00:00:00 2001 From: Greg Wilkins Date: Thu, 18 Jun 2009 01:14:26 +0000 Subject: [PATCH] configure queue git-svn-id: svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk@419 7e9141cc-0065-0410-87d8-b60c137991c4 --- .../jetty/util/thread/QueuedThreadPool.java | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/jetty-util/src/main/java/org/eclipse/jetty/util/thread/QueuedThreadPool.java b/jetty-util/src/main/java/org/eclipse/jetty/util/thread/QueuedThreadPool.java index f4137a51d5b..3fcdeda5b31 100644 --- a/jetty-util/src/main/java/org/eclipse/jetty/util/thread/QueuedThreadPool.java +++ b/jetty-util/src/main/java/org/eclipse/jetty/util/thread/QueuedThreadPool.java @@ -64,6 +64,17 @@ public class QueuedThreadPool extends AbstractLifeCycle implements ThreadPool, E setMaxThreads(maxThreads); } + /* ------------------------------------------------------------------- */ + /* Construct + */ + public QueuedThreadPool(BlockingQueue jobQ) + { + this(); + _jobs=jobQ; + _jobs.clear(); + } + + /* ------------------------------------------------------------ */ @Override protected void doStart() throws Exception @@ -71,8 +82,11 @@ public class QueuedThreadPool extends AbstractLifeCycle implements ThreadPool, E super.doStart(); _threadsStarted.set(0); - _jobs=_maxQueued>0 ?new ArrayBlockingQueue(_maxQueued) + if (_jobs==null) + { + _jobs=_maxQueued>0 ?new ArrayBlockingQueue(_maxQueued) :new BlockingArrayQueue(_minThreads,_minThreads); + } int threads=_threadsStarted.get(); while (isRunning() && threads<_minThreads) @@ -209,10 +223,19 @@ public class QueuedThreadPool extends AbstractLifeCycle implements ThreadPool, E * @return maximum queue size */ public int getMaxQueued() + { + return _maxQueued; + } + + /* ------------------------------------------------------------ */ + /** + * @param max job queue size + */ + public void setMaxQueued(int max) { if (isRunning()) throw new IllegalStateException("started"); - return _maxQueued; + _maxQueued=max; } /* ------------------------------------------------------------ */