BloombergLP::bslmt::LockGuardUnlock::LockGuardUnlock

Create a guard that optionally unlocks lock.

Synopsis

Declared in <bslmt_lockguard.h>

LockGuardUnlock(
    T* lock,
    bool alreadyUnlockedFlag);

Description

Create a scoped guard that conditionally manages the specified lock (if non-null) and invokes lock->unlock() if the specified alreadyUnlockedFlag is false. Supplying a null lock has no effect. The behavior is undefined unless the state of lock (if non-null) is consistent with alreadyUnlockedFlag. Note that alreadyUnlockedFlag is used to indicate whether lock is in an already-unlocked state when passed, so if alreadyUnlockedFlag is true the unlock 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.

Parameters

NameDescription
locklock object to unlock; may be null
alreadyUnlockedFlagtrue if lock is already unlocked