Queue of threads waiting for a specific kind of event to occur.
This class contains the high level functionality of enqueueing
and dequeueing threads and implementing timeouts.
Subclasses implement methods which determine when events
have occurred. Subclasses must directly implement the
Uninterruptible interface.
This class was adapted from the original
ThreadIOQueue, which is now a subclass.
This class was adapted from the original
ThreadIOQueue, which is now a subclass.