I don't know the answer, but are you experiencing problems in this area?

Carsten

Chetan Mehrotra wrote
> Hi,
> 
> Looking at the QuartzThreadPool#blockForAvailableThreads impl [1]
> 
> ---
> @Override
> public int blockForAvailableThreads() {
>        return this.executor.getConfiguration().getMaxPoolSize() -
>   this.executor.getConfiguration().getQueueSize();
> }
> ---
> 
> Above implementation does not "block" as per contract [2]
> 
> ---
> Determines the number of threads that are currently available in in
> the pool. Useful for determining the number of times
> runInThread(Runnable) can be called before returning false.
> 
> The implementation of this method should block until there is at least
> one available thread.
> ---
> 
> Further looking at code its not clear if
> executor.getConfiguration().getQueueSize() returns the current size as
> it appears to be set only at time of config and does not indicate the
> true size of current Sling threadPool implementation
> 
> Looking at Quartz flow its not clear what impact it would have. But
> per contract this looks incorrect.
> 
> Thoughts?
> 
> Chetan Mehrotra
> [1] 
> https://github.com/apache/sling/blob/trunk/bundles/commons/scheduler/src/main/java/org/apache/sling/commons/scheduler/impl/QuartzScheduler.java#L506
> [2] 
> http://www.quartz-scheduler.org/api/2.2.1/org/quartz/spi/ThreadPool.html#blockForAvailableThreads()
> 


 
-- 
Carsten Ziegeler
Adobe Research Switzerland
[email protected]

Reply via email to