Quick Links: |
#include <bslmt_mutex.h>
Public Types | |
typedef MutexImpl < Platform::ThreadPolicy > ::NativeType | NativeType |
Public Member Functions | |
Mutex () | |
~Mutex () | |
void | lock () |
NativeType & | nativeMutex () |
int | tryLock () |
void | unlock () |
This class
implements a lightweight, portable wrapper of an OS-level mutex lock to support intra-process synchronization. The behavior is undefined if the lock
method of this class is invoked more than once on the same mutex object in the same thread without an intervening call to unLock
.
typedef MutexImpl<Platform::ThreadPolicy>::NativeType bslmt::Mutex::NativeType |
bslmt::Mutex::Mutex | ( | ) |
Create a mutex object in the unlocked state.
bslmt::Mutex::~Mutex | ( | ) |
Destroy this mutex object. The behavior is undefined if the mutex is in a locked state.
void bslmt::Mutex::lock | ( | ) |
Acquire a lock on this mutex object. If this object is currently locked by a different thread, then suspend execution of the current thread until a lock can be acquired. The behavior is undefined if the calling thread already owns the lock on this mutex, and may result in deadlock.
NativeType& bslmt::Mutex::nativeMutex | ( | ) |
Return a reference to the modifiable OS-level mutex underlying this object. This method is intended only to support other bslmt
components that must operate directly on this mutex.
int bslmt::Mutex::tryLock | ( | ) |
Attempt to acquire a lock on this mutex object. Return 0 on success, and a non-zero value if this object is already locked by a different thread. The behavior is undefined if the calling thread already owns the lock on this mutex, and may result in deadlock.
void bslmt::Mutex::unlock | ( | ) |
Release a lock on this mutex that was previously acquired through a call to lock
, or a successful call to tryLock
, enabling another thread to acquire a lock on this mutex. The behavior is undefined unless the calling thread currently owns the lock on this mutex.