#include <MutexSemaphore.hpp>
Inheritance diagram for corelinux::MutexSemaphore
Public Methods | |
MutexSemaphore ( SemaphoreGroupPtr, SemaphoreIdentifierRef, bool AutoLock = false, bool Recursive = true, bool Balking = false ) throw ( NullPointerException ) | |
Default constructor requires the identifier of the semaphore in the semaphore group. More... | |
virtual | ~MutexSemaphore ( void ) |
Virtual Destructor. | |
virtual bool | isLocked ( void ) |
Ask if semaphore instance is locked. | |
virtual SemaphoreOperationStatus | lockWithWait ( void ) throw (SemaphoreException) |
Request the semaphore, wait for availability. | |
virtual SemaphoreOperationStatus | lockWithNoWait ( void ) throw (SemaphoreException) |
Request the semaphore without waiting. | |
virtual SemaphoreOperationStatus | release ( void ) throw (SemaphoreException) |
Release the semaphore if owner. | |
Protected Methods | |
MutexSemaphore ( void ) throw ( Assertion ) | |
Default construct throws assert. | |
MutexSemaphore ( MutexSemaphoreCref ) throw ( Assertion ) | |
Copy constructor throws assertion. | |
MutexSemaphoreRef | operator= ( MutexSemaphoreCref ) throw ( Assertion ) |
Assignment operator throws assertion. |
The semantics for Recursion: The thread that is successful is obtaining the lock will be regarded as theOwningThreadIdentifier. If, upon a lock request, it is determined that the same thread that owns the lock is asking to lock again, theRecursionQueueLength will be incremented. It is thereafter neccessary for theOwningThread to release the semaphore until theRecursionQueueLength returns to zero (0). All other callers will block or not based on their lock call disposition.
|
Default constructor requires the identifier of the semaphore in the semaphore group.
|