[#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. == Synopsis Declared in `<bslmt_sluice.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Sluice; ---- == Description 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. == 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 a token on which to wait. | 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`] | Wait for `token` to be signaled, or until `absTime` expires. | xref:BloombergLP/bslmt/Sluice/wait.adoc[`wait`] | Wait for the specified `token` to be signaled and release it. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#