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

protected abstract class AbstractNonblockingServer.AbstractSelectThread extends Thread
An abstract thread that handles selecting on a set of transports and FrameBuffers associated with selected keys corresponding to requests.
  • Field Details

  • Constructor Details

  • Method Details

    • wakeupSelector

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

      public void requestSelectInterestChange(AbstractNonblockingServer.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.
    • 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

      protected void handleRead(SelectionKey key)
      Do the work required to read from a readable client. If the frame is fully read, then invoke the method call.
    • handleWrite

      protected void handleWrite(SelectionKey key)
      Let a writable client get written, if there's data to be written.
    • cleanupSelectionKey

      protected void cleanupSelectionKey(SelectionKey key)
      Do connection-close cleanup on a given SelectionKey.