From 5f06999686b1c02c3dc612fe8a6a84ebecc76405 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 7 Jan 2011 23:08:18 +0100 Subject: [PATCH] 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. --- NEWS | 1 + src/output_thread.c | 3 --- 2 files changed, 1 insertion(+), 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; }