[#BloombergLP-bslmt-TestUtil_Guard] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslmt.adoc[bslmt]::TestUtil_Guard :relfileprefix: ../../ :mrdocs: This `class` defines an object that provides exclusive access to the critical sections defined by this component's macros. Multiple `Guard` objects can exist at once, but only in the same thread ‐‐ if an attempt is made to construct a `Guard` while any `Guard`s exist in other threads, the constructor will block until all `Guard` objects in other threads are destroyed. The behavior is undefined if a `Guard` object is anywhere but on the stack. == Synopsis Declared in `<bslmt_testutil.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class TestUtil_Guard; ---- == Type Aliases [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslmt/TestUtil_Guard/BoolType.adoc[`BoolType`] | Type used to provide a testable `bool` conversion for this object. |=== == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslmt/TestUtil_Guard/2constructor.adoc[`TestUtil_Guard`] [.small]#[constructor]# | Create a guard that locks the mutex in the singleton and saves the address of the singleton mutex. | xref:BloombergLP/bslmt/TestUtil_Guard/2destructor.adoc[`~TestUtil_Guard`] [.small]#[destructor]# | Unlock the recursive mutex that was locked by the constructor. | xref:BloombergLP/bslmt/TestUtil_Guard/operator_assign.adoc[`operator=`] | Set the boolean state of this object to the specified `rhs`. | xref:BloombergLP/bslmt/TestUtil_Guard/2conversion.adoc[`operator TestUtil_Guard::BoolType`] | Return the boolean state of this `TestUtil_Guard` object. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#