From feab87ff3c9dce87ef127c8c7e42e6d51950aa2e Mon Sep 17 00:00:00 2001 From: David Robillard Date: Tue, 4 Dec 2007 23:02:14 +0000 Subject: Added 'has_waiter' method for Semaphore. Added new Command class, for e.g. coarse GUI->Engine RT safe events. git-svn-id: http://svn.drobilla.net/lad/raul@947 a436a847-0d15-0410-975c-d299462d15a1 --- raul/Semaphore.hpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'raul/Semaphore.hpp') 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). * -- cgit v1.2.1