On 6 Oct 2009, at 15:59, Galder Zamarreno wrote:
The lazyness I was refering about earlier comes into play here in the
sense that, why not start the TPE the 1st time we register an async
Listener? If we did so, we'd be saving resources if no async listeners
are enabled (This looks to me the most common case right now). I can
see
the point of having this ready for normal use but certainly for
testsuite use, this is waste when we're creating so many
CacheManagers,
Caches instances and have several threads running different tests at
the
same time.
Regarding laziness, I don't think this is an issue. Let's take the
case of the DefaultExecutorFactory (and
DefaultScheduledExecutorFactory). We create the executors using the
JDK ExecutorService, passing in a ThreadFactory impl. So while we may
create the executor upfront, this is relatively lightweight (except
perhaps for the task queue, but again we use LinkedBlockingQueues
which are cheap to construct). The threads themselves to populate the
threadpool used by the executor is populated lazily (see
j.u.c.ThreadPoolExecutor#execute(), Sun JDK 6).
Cheers
--
Manik Surtani
manik(a)jboss.org
Lead, Infinispan
Lead, JBoss Cache
http://www.infinispan.org
http://www.jbosscache.org