Package org.apache.thrift.server
Class AbstractNonblockingServer.AbstractSelectThread
java.lang.Object
java.lang.Thread
org.apache.thrift.server.AbstractNonblockingServer.AbstractSelectThread
- All Implemented Interfaces:
Runnable
- Direct Known Subclasses:
TNonblockingServer.SelectAcceptThread
,TThreadedSelectorServer.SelectorThread
- Enclosing class:
- AbstractNonblockingServer
An abstract thread that handles selecting on a set of transports and
FrameBuffers
associated with selected keys corresponding to requests.-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Thread
Thread.State, Thread.UncaughtExceptionHandler
-
Field Summary
Modifier and TypeFieldDescriptionprotected final Set<AbstractNonblockingServer.FrameBuffer>
protected Selector
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
Do connection-close cleanup on a given SelectionKey.protected void
handleRead
(SelectionKey key) Do the work required to read from a readable client.protected void
handleWrite
(SelectionKey key) Let a writable client get written, if there's data to be written.protected void
Check to see if there are any FrameBuffers that have switched their interest type from read to write or vice versa.void
Add FrameBuffer to the list of select interest changes and wake up the selector if it's blocked.void
If the selector is blocked, wake it up.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, run, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield
-
Field Details
-
selector
-
selectInterestChanges
-
-
Constructor Details
-
AbstractSelectThread
- Throws:
IOException
-
-
Method Details
-
wakeupSelector
public void wakeupSelector()If the selector is blocked, wake it up. -
requestSelectInterestChange
Add FrameBuffer to the list of select interest changes and wake up the selector if it's blocked. When the select() call exits, it'll give the FrameBuffer a chance to change its interests. -
processInterestChanges
protected void processInterestChanges()Check to see if there are any FrameBuffers that have switched their interest type from read to write or vice versa. -
handleRead
Do the work required to read from a readable client. If the frame is fully read, then invoke the method call. -
handleWrite
Let a writable client get written, if there's data to be written. -
cleanupSelectionKey
Do connection-close cleanup on a given SelectionKey.
-