#include <bslmt_lockguard.h>
template<class T>
class bslmt::LockGuard< T >
This class template implements a guard for acquisition and release of synchronization resources (i.e., locks).
See bslmt_lockguard
◆ LockGuard() [1/2]
Create a scoped guard that conditionally manages the specified lock
(if non-null) and invokes lock->lock()
. Supplying a null lock
has no effect. The behavior is undefined unless lock
(if non-null) is not already locked by this thread. Note that lock
must remain valid throughout the lifetime of this guard, or until release
is called.
◆ LockGuard() [2/2]
Create a scoped guard that conditionally manages the specified lock
(if non-null) and invokes lock->lock()
if the specified alreadyLockedFlag
is false
. Supplying a null lock
has no effect. The behavior is undefined unless the state of lock
(if non-null) is consistent with alreadyLockedFlag
. Note that alreadyLockedFlag
is used to indicate whether lock
is in an already-locked state when passed, so if alreadyLockedFlag
is true
the lock
method will not be called on the supplied lock
. Also note that lock
must remain valid throughout the lifetime of this guard, or until release
is called.
◆ ~LockGuard()
Destroy this scoped guard and invoke the unlock
method on the lock object under management by this guard, if any. If no lock is currently being managed, this method has no effect.
◆ ptr()
Return the address of the modifiable lock object under management by this guard, or 0 if no lock is currently being managed.
◆ release()
Return the address of the modifiable lock object under management by this guard, and release the lock from further management by this guard. If no lock is currently being managed, return 0 with no other effect. Note that this operation does not unlock the lock object (if any) that was under management.
The documentation for this class was generated from the following file: