[#BloombergLP-bslmt-Sluice] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslmt.adoc[bslmt]::Sluice :relfileprefix: ../../ :mrdocs: 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. == Synopsis Declared in `<bslmt_sluice.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Sluice; ---- == Enums [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslmt/Sluice/_04enum.adoc[`Unnamed enum`] | Status codes for timed wait operations. |=== == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslmt/Sluice/2constructor-08e1.adoc[`Sluice`] [.small]#[constructor]# | Constructors | xref:BloombergLP/bslmt/Sluice/2destructor.adoc[`~Sluice`] [.small]#[destructor]# | Destroy this sluice. | xref:BloombergLP/bslmt/Sluice/clockType.adoc[`clockType`] | Return the clock type used for timeouts. | xref:BloombergLP/bslmt/Sluice/enter.adoc[`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. | xref:BloombergLP/bslmt/Sluice/signalAll.adoc[`signalAll`] | Signal all threads that have entered this sluice and have not yet been released. | xref:BloombergLP/bslmt/Sluice/signalOne.adoc[`signalOne`] | Signal one thread that has entered this sluice and has not yet been released. | xref:BloombergLP/bslmt/Sluice/timedWait-00.adoc[`timedWait`] | `timedWait` overloads | xref:BloombergLP/bslmt/Sluice/wait.adoc[`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`). |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#