org.apache.thrift.server
Class TNonblockingServer.SelectThread

java.lang.Object
  extended by java.lang.Thread
      extended by org.apache.thrift.server.TNonblockingServer.SelectThread
All Implemented Interfaces:
java.lang.Runnable
Enclosing class:
TNonblockingServer

protected class TNonblockingServer.SelectThread
extends java.lang.Thread

The thread that will be doing all the selecting, managing new connections and those that still need to be read.


Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
TNonblockingServer.SelectThread(TNonblockingServerTransport serverTransport)
          Set up the SelectorThread.
 
Method Summary
 void requestSelectInterestChange(TNonblockingServer.FrameBuffer frameBuffer)
          Add FrameBuffer to the list of select interest changes and wake up the selector if it's blocked.
 void run()
          The work loop.
 void wakeupSelector()
          If the selector is blocked, wake it up.
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TNonblockingServer.SelectThread

public TNonblockingServer.SelectThread(TNonblockingServerTransport serverTransport)
                                throws java.io.IOException
Set up the SelectorThread.

Throws:
java.io.IOException
Method Detail

run

public void run()
The work loop. Handles both selecting (all IO operations) and managing the selection preferences of all existing connections.

Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread

wakeupSelector

public void wakeupSelector()
If the selector is blocked, wake it up.


requestSelectInterestChange

public void requestSelectInterestChange(TNonblockingServer.FrameBuffer frameBuffer)
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.