Class WaitingThread

java.lang.Object
org.apache.http.impl.conn.tsccm.WaitingThread

public class WaitingThread
extends Object
Represents a thread waiting for a connection. This class implements throwaway objects. It is instantiated whenever a thread needs to wait. Instances are not re-used, except if the waiting thread experiences a spurious wakeup and continues to wait.
All methods assume external synchronization on the condition passed to the constructor. Instances of this class do not synchronize access!
Author:
Roland Weber
  • Constructor Details

    • WaitingThread

      public WaitingThread​(Condition cond, RouteSpecificPool pool)
      Creates a new entry for a waiting thread.
      Parameters:
      cond - the condition for which to wait
      pool - the pool on which the thread will be waiting, or null
  • Method Details

    • getCondition

      public final Condition getCondition()
      Obtains the condition.
      Returns:
      the condition on which to wait, never null
    • getPool

      public final RouteSpecificPool getPool()
      Obtains the pool, if there is one.
      Returns:
      the pool on which a thread is or was waiting, or null
    • getThread

      public final Thread getThread()
      Obtains the thread, if there is one.
      Returns:
      the thread which is waiting, or null
    • await

      public boolean await​(Date deadline) throws InterruptedException
      Blocks the calling thread. This method returns when the thread is notified or interrupted, if a timeout occurrs, or if there is a spurious wakeup.
      This method assumes external synchronization.
      Parameters:
      deadline - when to time out, or null for no timeout
      Returns:
      true if the condition was satisfied, false in case of a timeout. Typically, a call to wakeup() is used to indicate that the condition was satisfied. Since the condition is accessible outside, this cannot be guaranteed though.
      Throws:
      InterruptedException - if the waiting thread was interrupted
      See Also:
      wakeup()
    • wakeup

      public void wakeup()
      Wakes up the waiting thread.
      This method assumes external synchronization.
    • interrupt

      public void interrupt()