Package org.apache.thrift.server
Class TThreadedSelectorServer.SelectorThread
- java.lang.Object
-
- java.lang.Thread
-
- org.apache.thrift.server.AbstractNonblockingServer.AbstractSelectThread
-
- org.apache.thrift.server.TThreadedSelectorServer.SelectorThread
-
- All Implemented Interfaces:
java.lang.Runnable
- Enclosing class:
- TThreadedSelectorServer
protected class TThreadedSelectorServer.SelectorThread extends AbstractNonblockingServer.AbstractSelectThread
The SelectorThread(s) will be doing all the selecting on accepted active connections.
-
-
Field Summary
-
Fields inherited from class org.apache.thrift.server.AbstractNonblockingServer.AbstractSelectThread
selectInterestChanges, selector
-
-
Constructor Summary
Constructors Constructor Description SelectorThread()
Set up the SelectorThread with an unbounded queue for incoming accepts.SelectorThread(int maxPendingAccepts)
Set up the SelectorThread with an bounded queue for incoming accepts.SelectorThread(java.util.concurrent.BlockingQueue<TNonblockingTransport> acceptedQueue)
Set up the SelectorThread with a specified queue for connections.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
addAcceptedConnection(TNonblockingTransport accepted)
Hands off an accepted connection to be handled by this thread.void
run()
The work loop.-
Methods inherited from class org.apache.thrift.server.AbstractNonblockingServer.AbstractSelectThread
cleanupSelectionKey, handleRead, handleWrite, processInterestChanges, requestSelectInterestChange, wakeupSelector
-
Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield
-
-
-
-
Constructor Detail
-
SelectorThread
public SelectorThread() throws java.io.IOException
Set up the SelectorThread with an unbounded queue for incoming accepts.- Throws:
java.io.IOException
- if a selector cannot be created
-
SelectorThread
public SelectorThread(int maxPendingAccepts) throws java.io.IOException
Set up the SelectorThread with an bounded queue for incoming accepts.- Throws:
java.io.IOException
- if a selector cannot be created
-
SelectorThread
public SelectorThread(java.util.concurrent.BlockingQueue<TNonblockingTransport> acceptedQueue) throws java.io.IOException
Set up the SelectorThread with a specified queue for connections.- Parameters:
acceptedQueue
- The BlockingQueue implementation for holding incoming accepted connections.- Throws:
java.io.IOException
- if a selector cannot be created.
-
-
Method Detail
-
addAcceptedConnection
public boolean addAcceptedConnection(TNonblockingTransport accepted)
Hands off an accepted connection to be handled by this thread. This method will block if the queue for new connections is at capacity.- Parameters:
accepted
- The connection that has been accepted.- Returns:
- true if the connection has been successfully added.
-
run
public void run()
The work loop. Handles selecting (read/write IO), dispatching, and managing the selection preferences of all existing connections.- Specified by:
run
in interfacejava.lang.Runnable
- Overrides:
run
in classjava.lang.Thread
-
-