protected void createBoundedThreadPool(final int threadPoolMaxSize,
final int threadPoolMinSize,
final int threadPoolInitSize,
final int keepAliveTime,
final boolean waitWhenBlocked) {
m_threadPool = new PooledExecutor(new BoundedBuffer(threadPoolInitSize), threadPoolMaxSize);
m_threadPool.setKeepAliveTime(keepAliveTime);
m_threadPool.createThreads(threadPoolInitSize);
m_threadPool.setMinimumPoolSize(threadPoolMinSize);
if (waitWhenBlocked) {
m_threadPool.waitWhenBlocked();