A classic semaphore synchronization primitive. More...
#include "psemaphore.h"
Public Member Functions | |
| Semaphore (int initial_count=1) | |
| Semaphore (const Semaphore ©)=delete | |
| void | acquire () | 
| Decrements the internal count.  More... | |
| int | get_count () const | 
| Returns the current semaphore count.  More... | |
| Semaphore & | operator= (const Semaphore ©)=delete | 
| void | output (std::ostream &out) const | 
| int | release () | 
| Increments the semaphore's internal count.  More... | |
| bool | try_acquire () | 
| If the semaphore can be acquired without blocking, does so and returns true.  More... | |
A classic semaphore synchronization primitive.
A semaphore manages an internal counter which is decremented by each acquire() call and incremented by each release() call. The counter can never go below zero; when acquire() finds that it is zero, it blocks, waiting until some other thread calls release().
Definition at line 30 of file psemaphore.h.
      
  | 
  inline | 
Decrements the internal count.
If the count was already at zero, blocks until the count is nonzero, then decrements it.
Definition at line 31 of file psemaphore.I.
      
  | 
  inline | 
Returns the current semaphore count.
Note that this call is not thread- safe (the count may change at any time).
Definition at line 77 of file psemaphore.I.
      
  | 
  inline | 
Increments the semaphore's internal count.
This may wake up another thread blocked on acquire().
Returns the count of the semaphore upon release.
Definition at line 64 of file psemaphore.I.
      
  | 
  inline | 
If the semaphore can be acquired without blocking, does so and returns true.
Otherwise, returns false.
Definition at line 46 of file psemaphore.I.
 1.8.15