Hi Frédéric, On Nov 23, 2007 7:53 AM, Frédéric Brégier <[EMAIL PROTECTED]> wrote: > Hi Maarten, > > Correct me if I am missing something. > dispose() seems to release all ressources from the IoService (or connector), > so when you don't need anymore the > connector. > setWorkerTimeout() was intend to release one thread only inside the pool of > threads after the specified timeout > after no use. > > I read the code, specially from the 6 months ago trunk version and the > current version. > It seems that in previous version Mina tries to re-use thread during some > time before returning > them definitively to the pool (or to nothing since the default pool was > NewThreadExecutor). > In case of NewThreadExecutor, trying to reuse thread instead of created a new > one everyone, > I suppose it was the point. > Am I correct if I say that, since the underlying pool of thread in the new > trunk > is a CachedPool, you don't need anymore this function as you rely on the > pool management from CachedPool itself, such that Mina don't have to take > care of this ?
2.0 still uses NewThreadExecutor for acceptor & connector threads, so there's some overhead of spawning a new thread. This becomes a problem when a user tries to request a bunch of connection with bad timing because threads will be spawned for each request. To avoid that situation, I programmed AbstractPollingIoConnector's Worker not to exit until dispose() is called. However, this is waste of thread if you explicitly specified a thread pool, as you pointed out. The solution could be not using NewThreadExecutor but using something different such as a cached thread pool executor. However, we are not able to share the cached thread pool executor among all acceptors and connectors because it means user have to call some global shutdown method to shut down the shared thread pool. Anyways, let me fix the problem by replacing NewThreadExecutor with Executors.newCachedThreadPool(). :) Thank you so much for your feed back! Cheers, Trustin -- what we call human nature is actually human habit -- http://gleamynode.net/ -- PGP Key ID: 0x0255ECA6