aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2011-01-07 23:08:18 +0100
committerMax Kellermann <max@duempel.org>2011-01-07 23:08:18 +0100
commit5f06999686b1c02c3dc612fe8a6a84ebecc76405 (patch)
tree2948e8a460e7128f0f08f11a86229a0a8676e623
parent4c09aeb5a1ac7dbf80af680c18f4e36d4776dc8c (diff)
downloadmpd-5f06999686b1c02c3dc612fe8a6a84ebecc76405.tar.gz
mpd-5f06999686b1c02c3dc612fe8a6a84ebecc76405.tar.xz
mpd-5f06999686b1c02c3dc612fe8a6a84ebecc76405.zip
output_thread: fix double lock
During the whole output thread, the audio_output object is locked, and it is only unlocked while waiting for the GCond and while running a plugin method. The error handler in ao_play_chunk() attempted to lock the object again, which was code from MPD 0.15.x which should have been removed a long time ago.
-rw-r--r--NEWS1
-rw-r--r--src/output_thread.c3
2 files changed, 1 insertions, 3 deletions
diff --git a/NEWS b/NEWS
index be21282e2..bc50c1c63 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,7 @@ ver 0.16.1 (2010/??/??)
- solaris: add missing parameter to open_cloexec() cal
- osx: fix up audio format first, then apply it to device
* player_thread: fix assertion failure due to early seek
+* output_thread: fix double lock
ver 0.16 (2010/12/11)
diff --git a/src/output_thread.c b/src/output_thread.c
index a334fcef5..a5244c693 100644
--- a/src/output_thread.c
+++ b/src/output_thread.c
@@ -463,12 +463,9 @@ ao_play_chunk(struct audio_output *ao, const struct music_chunk *chunk)
/* don't automatically reopen this device for
10 seconds */
- g_mutex_lock(ao->mutex);
-
assert(ao->fail_timer == NULL);
ao->fail_timer = g_timer_new();
- g_mutex_unlock(ao->mutex);
return false;
}