#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(). |
1.4.2