diff options
Diffstat (limited to 'raul/Semaphore.hpp')
-rw-r--r-- | raul/Semaphore.hpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/raul/Semaphore.hpp b/raul/Semaphore.hpp index 3bd6ac4..09f3f7a 100644 --- a/raul/Semaphore.hpp +++ b/raul/Semaphore.hpp @@ -42,8 +42,16 @@ public: inline ~Semaphore() { sem_destroy(&_sem); } - inline void reset(unsigned int initial) - { sem_destroy(&_sem); sem_init(&_sem, 0, initial); } + inline void reset(unsigned int initial) { + sem_destroy(&_sem); + sem_init(&_sem, 0, initial); + } + + inline bool has_waiter() { + int val; + sem_getvalue(&_sem, &val); + return (val <= 0); + } /** Increment (and signal any waiters). * |