Class AbstractNioWorkerPool<E extends AbstractNioWorker>
java.lang.Object
org.jboss.netty.channel.socket.nio.AbstractNioWorkerPool<E>
- All Implemented Interfaces:
NioSelectorPool
,WorkerPool<E>
,ExternalResourceReleasable
- Direct Known Subclasses:
NioDatagramWorkerPool
,NioWorkerPool
public abstract class AbstractNioWorkerPool<E extends AbstractNioWorker>
extends Object
implements WorkerPool<E>, ExternalResourceReleasable
Abstract base class for
WorkerPool
implementations that create the Worker
's
up-front and return them in a "fair" fashion when calling nextWorker()
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final int
The worker pool raises an exception unless all worker threads start and run within this timeout (in seconds.)private final AtomicBoolean
private static final InternalLogger
private final Executor
private final AtomicInteger
private final AbstractNioWorker[]
-
Constructor Summary
ConstructorsConstructorDescriptionAbstractNioWorkerPool
(Executor workerExecutor, int workerCount) Create a new instanceAbstractNioWorkerPool
(Executor workerExecutor, int workerCount, boolean autoInit) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
init()
protected abstract E
Return the nextWorker
to usevoid
void
Releases the external resources that this object depends on.void
shutdown()
Shutdown theNioSelectorPool
and all internal created resourcesprivate void
-
Field Details
-
INITIALIZATION_TIMEOUT
private static final int INITIALIZATION_TIMEOUTThe worker pool raises an exception unless all worker threads start and run within this timeout (in seconds.)- See Also:
-
logger
-
workers
-
workerIndex
-
workerExecutor
-
initialized
-
-
Constructor Details
-
Method Details
-
init
protected void init() -
waitForWorkerThreads
private void waitForWorkerThreads() -
newWorker
-
nextWorker
Description copied from interface:WorkerPool
Return the nextWorker
to use- Specified by:
nextWorker
in interfaceWorkerPool<E extends AbstractNioWorker>
- Returns:
- worker
-
rebuildSelectors
public void rebuildSelectors()Description copied from interface:NioSelectorPool
Replaces the currentSelector
s of theBoss
es with newSelector
s to work around the infamous epoll 100% CPU bug.- Specified by:
rebuildSelectors
in interfaceNioSelectorPool
-
releaseExternalResources
public void releaseExternalResources()Description copied from interface:ExternalResourceReleasable
Releases the external resources that this object depends on. You should not call this method if the external resources (e.g. thread pool) are in use by other objects.- Specified by:
releaseExternalResources
in interfaceExternalResourceReleasable
-
shutdown
public void shutdown()Description copied from interface:NioSelectorPool
Shutdown theNioSelectorPool
and all internal created resources- Specified by:
shutdown
in interfaceNioSelectorPool
-