aboutsummaryrefslogtreecommitdiffstats
path: root/src/output_thread.c
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2008-09-26 09:57:11 +0200
committerMax Kellermann <max@duempel.org>2008-09-26 09:57:11 +0200
commit58554e14f9995fdafe2338a69a42d9192b96f712 (patch)
tree83881d1e2131795581c822aa5cd01ddce42cf80f /src/output_thread.c
parent323e86489fb9544b3a2faa9e9004ac0b72bf01ca (diff)
downloadmpd-58554e14f9995fdafe2338a69a42d9192b96f712.tar.gz
mpd-58554e14f9995fdafe2338a69a42d9192b96f712.tar.xz
mpd-58554e14f9995fdafe2338a69a42d9192b96f712.zip
notify: protect notify->pending with the mutex
There was a known deadlocking bug in the notify library: when the other thread set notify->pending after the according check in notify_wait(), the latter thread was deadlocked. Resolve this by synchronizing all accesses to notify->pending with the notify object's mutex. Since notify_signal_sync() was never used, we can remove it. As a consequence, we don't need notify_enter() and notify_leave() anymore; eliminate them, too.
Diffstat (limited to 'src/output_thread.c')
-rw-r--r--src/output_thread.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/src/output_thread.c b/src/output_thread.c
index a92f0bafd..4bc5d8fcb 100644
--- a/src/output_thread.c
+++ b/src/output_thread.c
@@ -67,8 +67,6 @@ static void *audio_output_task(void *arg)
{
struct audio_output *ao = arg;
- notify_enter(&ao->notify);
-
while (1) {
switch (ao->command) {
case AO_COMMAND_NONE: