Quick Links:

bal | bbl | bdl | bsl

Public Member Functions

bslmt::RecursiveMutex Class Reference

#include <bslmt_recursivemutex.h>

List of all members.

Public Member Functions

 RecursiveMutex ()
 ~RecursiveMutex ()
void lock ()
int tryLock ()
void unlock ()

Detailed Description

This class implements a recursive mutex (i.e., a mutex that can be locked any number of times by a thread, and then released by unlocking the mutex the same number of times). If there is an efficient native recursive mutex, this class wraps it. Otherwise, a reasonably efficient proprietary implementation is used. Note that Mutex should be preferred if at all possible.

See Component bslmt_recursivemutex


Constructor & Destructor Documentation

bslmt::RecursiveMutex::RecursiveMutex (  ) 

Create a recursive mutex object in the unlocked state.

bslmt::RecursiveMutex::~RecursiveMutex (  ) 

Destroy this recursive mutex object.


Member Function Documentation

void bslmt::RecursiveMutex::lock (  ) 

Acquire a lock on this object. If this object is currently locked, then suspend execution of the current thread until a lock can be acquired. Succeed immediately if this thread already holds the lock.

int bslmt::RecursiveMutex::tryLock (  ) 

Attempt to acquire a lock on this object. Return 0 on success, and a non-zero value if this object is already locked by another thread, or if an error occurs. Succeed immediately if this thread already holds the lock.

void bslmt::RecursiveMutex::unlock (  ) 

Release a lock on this object that was previously acquired through a call to lock, or a successful call to tryLock. To fully release the lock, a thread must invoke unlock the same number of times it invoked lock and tryLock. The behavior is undefined unless the calling thread currently owns the lock on this recursive mutex.


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