BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bslmt::ReadLockGuardUnlock< T > Class Template Reference

#include <bslmt_readlockguard.h>

Public Member Functions

 ReadLockGuardUnlock (T *lock)
 
 ReadLockGuardUnlock (T *lock, bool alreadyUnlockedFlag)
 
 ~ReadLockGuardUnlock ()
 
T * release ()
 
T * ptr () const
 

Detailed Description

template<class T>
class bslmt::ReadLockGuardUnlock< T >

This class template implements a guard for release and reacquisition of read synchronization resources (i.e., reader locks).

See bslmt_readlockguard

Constructor & Destructor Documentation

◆ ReadLockGuardUnlock() [1/2]

template<class T >
bslmt::ReadLockGuardUnlock< T >::ReadLockGuardUnlock ( T *  lock)
inlineexplicit

Create a scoped guard that conditionally manages the specified lock (if non-null) and invokes lock->unlock(). Supplying a null lock has no effect. The behavior is undefined unless lock (if non-null) is locked by this thread. Note that lock must remain valid throughout the lifetime of this guard, or until release is called.

◆ ReadLockGuardUnlock() [2/2]

template<class T >
bslmt::ReadLockGuardUnlock< T >::ReadLockGuardUnlock ( T *  lock,
bool  alreadyUnlockedFlag 
)
inline

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.

◆ ~ReadLockGuardUnlock()

template<class T >
bslmt::ReadLockGuardUnlock< T >::~ReadLockGuardUnlock ( )
inline

Destroy this scoped guard and invoke the lockRead method on the lock object under management by this guard, if any. If no lock is currently being managed, this method has no effect.

Member Function Documentation

◆ ptr()

template<class T >
T * bslmt::ReadLockGuardUnlock< T >::ptr ( ) const
inline

Return the address of the modifiable lock object under management by this guard, or 0 if no lock is currently being managed.

◆ release()

template<class T >
T * bslmt::ReadLockGuardUnlock< T >::release ( )
inline

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 lock the lock object (if any) that was under management.


The documentation for this class was generated from the following file: