This class controls the release of threads from a common synchronization point. One or more threads may "enter" a Sluice object, and then wait to be released. Either one waiting thread (via the signalOne method), or all waiting threads (via the signalAll method), may be signaled for release. In any case, Sluice provides a guarantee against starvation.
Declared in <bslmt_sluice.h>
class Sluice;
| Name | Description |
|---|---|
Unnamed enum | Status codes for timed wait operations. |
| Name | Description |
|---|---|
Sluice [constructor] | Constructors |
~Sluice [destructor] | Destroy this sluice. |
clockType | Return the clock type used for timeouts. |
enter | Enter this sluice, and return the token on which the calling thread must subsequently wait. The behavior is undefined unless wait or timedWait is invoked with the token before this sluice is destroyed. |
signalAll | Signal all threads that have entered this sluice and have not yet been released. |
signalOne | Signal one thread that has entered this sluice and has not yet been released. |
timedWait | timedWait overloads |
wait | Wait for the specified token to be signaled, and release the token. The behavior is undefined unless token was obtained from a call to enter by this thread, and was not subsequently released (via a call to timedWait or wait). |