diff options
author | Max Kellermann <max@duempel.org> | 2008-12-27 20:56:06 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2008-12-27 20:56:06 +0100 |
commit | ed9668f638ec3a31096821648f289b8a243f4ab2 (patch) | |
tree | 4ef39af2684f7aea0d4608f3413b68b7eb5b71a5 /src/notify.c | |
parent | e8c44782d0014ac72c155616a3b3272824b2ff96 (diff) | |
download | mpd-ed9668f638ec3a31096821648f289b8a243f4ab2.tar.gz mpd-ed9668f638ec3a31096821648f289b8a243f4ab2.tar.xz mpd-ed9668f638ec3a31096821648f289b8a243f4ab2.zip |
notify: use GLib locking
Use GLib locking (GMutex, GCond) instead of pthread because GLib is
more portable, e.g. on mingw32.
Diffstat (limited to '')
-rw-r--r-- | src/notify.c | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/src/notify.c b/src/notify.c index 7d25db517..24d0e3928 100644 --- a/src/notify.c +++ b/src/notify.c @@ -17,42 +17,33 @@ */ #include "notify.h" -#include "log.h" void notify_init(struct notify *notify) { - int ret; - - ret = pthread_mutex_init(¬ify->mutex, NULL); - if (ret != 0) - FATAL("pthread_mutex_init() failed"); - - ret = pthread_cond_init(¬ify->cond, NULL); - if (ret != 0) - FATAL("pthread_mutex_init() failed"); - + notify->mutex = g_mutex_new(); + notify->cond = g_cond_new(); notify->pending = false; } void notify_deinit(struct notify *notify) { - pthread_mutex_destroy(¬ify->mutex); - pthread_cond_destroy(¬ify->cond); + g_mutex_free(notify->mutex); + g_cond_free(notify->cond); } void notify_wait(struct notify *notify) { - pthread_mutex_lock(¬ify->mutex); + g_mutex_lock(notify->mutex); while (!notify->pending) - pthread_cond_wait(¬ify->cond, ¬ify->mutex); + g_cond_wait(notify->cond, notify->mutex); notify->pending = false; - pthread_mutex_unlock(¬ify->mutex); + g_mutex_unlock(notify->mutex); } void notify_signal(struct notify *notify) { - pthread_mutex_lock(¬ify->mutex); + g_mutex_lock(notify->mutex); notify->pending = true; - pthread_cond_signal(¬ify->cond); - pthread_mutex_unlock(¬ify->mutex); + g_cond_signal(notify->cond); + g_mutex_unlock(notify->mutex); } |