diff options
Diffstat (limited to '')
-rw-r--r-- | src/notify.c | 20 |
1 files changed, 4 insertions, 16 deletions
diff --git a/src/notify.c b/src/notify.c index edb77f66d..5aaecd0ad 100644 --- a/src/notify.c +++ b/src/notify.c @@ -40,32 +40,20 @@ void notify_deinit(struct notify *notify) pthread_cond_destroy(¬ify->cond); } -void notify_enter(struct notify *notify) -{ - pthread_mutex_lock(¬ify->mutex); -} - -void notify_leave(struct notify *notify) -{ - pthread_mutex_unlock(¬ify->mutex); -} - void notify_wait(struct notify *notify) { + pthread_mutex_lock(¬ify->mutex); if (!notify->pending) pthread_cond_wait(¬ify->cond, ¬ify->mutex); + assert(notify->pending); notify->pending = 0; + pthread_mutex_unlock(¬ify->mutex); } void notify_signal(struct notify *notify) { + pthread_mutex_lock(¬ify->mutex); notify->pending = 1; pthread_cond_signal(¬ify->cond); -} - -void notify_signal_sync(struct notify *notify) -{ - pthread_mutex_lock(¬ify->mutex); - notify_signal(notify); pthread_mutex_unlock(¬ify->mutex); } |