#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.
|