#include <Semaphore.h>
Inheritance diagram for OS::Semaphore:
Public Member Functions | |
Semaphore (void) | |
virtual | ~Semaphore (void) |
virtual void | signal (void) |
virtual void | wait (void) |
Static Public Member Functions | |
static Semaphore * | forMutualExclusion (void) |
Protected Attributes | |
sem_t | handle |
|
Definition at line 33 of file Semaphore.cc. References handle. 00034 { 00035 sem_init(&handle, 0, 0); 00036 }
|
|
Definition at line 38 of file Semaphore.cc. References handle. 00039 { 00040 sem_destroy(&handle); 00041 }
|
|
Definition at line 44 of file Semaphore.cc. References signal(). Referenced by OS::SharedQueue::SharedQueue().
|
|
Definition at line 52 of file Semaphore.cc. References handle. Referenced by Tools::LogWriter::commit(), OS::Promise::exception(), forMutualExclusion(), OS::SharedQueue::next(), OS::SharedQueue::nextPut(), OS::SharedQueue::peek(), and OS::Promise::value(). 00053 { 00054 sem_post(&handle); 00055 }
|
|
Definition at line 57 of file Semaphore.cc. References handle. Referenced by Tools::LogWriter::close(), OS::SharedQueue::next(), OS::SharedQueue::nextPut(), OS::SharedQueue::peek(), OS::Promise::value(), and Tools::LogWriter::writeLog(). 00058 { 00059 int retCode; 00060 00061 do { 00062 retCode = sem_wait(&handle); 00063 } while (retCode == -1 && errno == EINTR); 00064 if (retCode == -1) { 00065 (new OSError(new String(sys_errlist[errno]), __PRETTY_FUNCTION__)) 00066 ->raiseFrom(this); 00067 } 00068 }
|
|
Definition at line 40 of file Semaphore.h. Referenced by Semaphore(), signal(), wait(), and ~Semaphore(). |