summaryrefslogtreecommitdiffstats
path: root/raul/Semaphore.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'raul/Semaphore.hpp')
-rw-r--r--raul/Semaphore.hpp12
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).
*