Inheritance diagram for DAQThreadRecursiveMutex::
Public Methods | |
DAQThreadRecursiveMutex () | |
Constructor. More... | |
~DAQThreadRecursiveMutex () | |
Destructor. More... | |
int | Lock () |
Lock mutex. More... | |
int | TryLock () |
Try to lock mutex. More... | |
int | UnLock () |
Try to unlock mutex. More... | |
bool | IsLocked () |
Test if the mutex is locked. More... | |
int | UnLockCompletely () |
Completely unlock the mutex. More... | |
virtual void | PrintEyeCatcher (ostream &) |
Print an eye catcher. More... | |
Protected Attributes | |
daqthread_mutex_t | thrdmutex |
The mutex. More... | |
daqthread_mutex_t | monitormutex |
The monitor mutex. More... | |
daqthread_t | owningthread |
The thread that owns this mutex. More... | |
unsigned int | lockdepth |
The depth to which this mutex has been locked. More... | |
Friends | |
class | DAQThreadCond |
The DAQThreadRecursiveMutex class provides methods that implement a recursive mutex. A recursive mutex is capable of being locked multiple times by the same thread without blocking. Other threads will block on the mutex until the owning thread unlocks the mutex to a recursive depth of zero.
|
Basic constructor method for this class.
|
|
Destructor method for this class.
|
|
Tests if the mutex is locked and returns true if it is.
|
|
Attempts to lock the mutex. This method will block if the mutex has been locked by another thread and that thread does not currently own the mutex.
|
|
Print an eye catcher for this mutex.
Reimplemented from DAQObject. |
|
Attempts to lock the mutex. This method doesn't block if the mutex has been locked by another thread.
|
|
Attempts to unlock the mutex. Only the owning thread can unlock the mutex.
|
|
Completely unlocks the mutex such that the recursive locking level is set to zero. This can only be done by the owning thread.
|
|
The depth to which the owning thread has locked this mutex. |
|
The monitor mutex that protects the recursive structures used to implement the recursive mutex. |
|
The thread that owns this mutex. This thread is allowed to lock the mutex repetively. |
|
The actual mutex that is locked (recursively). |