org.apache.thrift.server

## Class TNonblockingServer.SelectThread

- java.lang.Object
- - java.lang.Thread
  - - 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

    Constructors
    Constructor and Description
    `TNonblockingServer.SelectThread(TNonblockingServerTransport serverTransport)` Set up the SelectorThread.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `isStopped()`
    `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

    - #### isStopped

          public boolean isStopped()

    - #### 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.