BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bslmt::Mutex Class Reference

#include <bslmt_mutex.h>

Public Types

typedef MutexImpl< Platform::ThreadPolicy >::NativeType NativeType
 

Public Member Functions

 Mutex ()
 
 ~Mutex ()
 
void lock ()
 
NativeTypenativeMutex ()
 
int tryLock ()
 
void unlock ()
 

Detailed Description

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.

See bslmt_mutex

Member Typedef Documentation

◆ NativeType

typedef MutexImpl<Platform::ThreadPolicy>::NativeType bslmt::Mutex::NativeType

NativeType is an alias for the underlying OS-level mutex type. It is exposed so that other bslmt components can operate directly on this mutex.

Constructor & Destructor Documentation

◆ Mutex()

bslmt::Mutex::Mutex ( )
inline

Create a mutex object in the unlocked state. This method does not return normally unless there are sufficient system resources to construct the object.

◆ ~Mutex()

bslmt::Mutex::~Mutex ( )
inline

Destroy this mutex object. The behavior is undefined if the mutex is in a locked state.

Member Function Documentation

◆ lock()

void bslmt::Mutex::lock ( )
inline

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.

◆ nativeMutex()

Mutex::NativeType & bslmt::Mutex::nativeMutex ( )
inline

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.

◆ tryLock()

int bslmt::Mutex::tryLock ( )
inline

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.

◆ unlock()

void bslmt::Mutex::unlock ( )
inline

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.


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