#include <GatewaySemaphore.hpp>
Inheritance diagram for corelinux::GatewaySemaphore


Public Methods | |
| GatewaySemaphore ( SemaphoreGroupPtr, SemaphoreIdentifierRef, Count , bool Recursive = false, bool Balking = false ) throw ( NullPointerException ) | |
| Default constructor requires the identifier of the semaphore in the semaphore group and a count of resources for control. More... | |
| virtual | ~GatewaySemaphore ( void ) |
| Virtual Destructor. | |
| virtual bool | isLocked ( void ) |
| Ask if AbstractSemaphore instance is locked. | |
| virtual bool | isAnOwner ( void ) |
| Returns true if calling thread owns a resource. | |
| virtual Counter | getOwnerRecursionQueueLength ( void ) |
| Returns the recursion depth for the calling thread. More... | |
| virtual SemaphoreOperationStatus | lockWithWait (void) throw ( SemaphoreException ) |
| Request the lock, wait for availability. | |
| virtual SemaphoreOperationStatus | lockWithNoWait (void) throw ( SemaphoreException ) |
| Request the lock without waiting. | |
| virtual SemaphoreOperationStatus | release (void) throw ( SemaphoreException ) |
| Release the lock. | |
Protected Methods | |
| GatewaySemaphore ( void ) throw ( Assertion ) | |
| Default construct throws assert. | |
| GatewaySemaphore ( GatewaySemaphoreCref ) throw ( Assertion ) | |
| Copy constructor throws assertion. | |
| GatewaySemaphoreRef | operator= ( GatewaySemaphoreCref ) throw ( Assertion ) |
| Assignment operator throws assertion. | |
| SemaphoreOperationStatus | lockAndAdd ( ThreadIdentifierRef aTid, Int aFlag = 0 ) |
Unlike the tradition boolean semaphore (locked,unlocked), this type assumes a finite number of threads/processes can be granted access up to theResourceMaximum. The semantics regarding semaphore and recursion in relationship to the GatewaySemaphore is as follows:
With recursion enabled:
|
|
Default constructor requires the identifier of the semaphore in the semaphore group and a count of resources for control.
|
|
|
Returns the recursion depth for the calling thread.
|