Commit 5f069996 authored by Max Kellermann's avatar Max Kellermann

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.
parent 4c09aeb5
...@@ -9,6 +9,7 @@ ver 0.16.1 (2010/??/??) ...@@ -9,6 +9,7 @@ ver 0.16.1 (2010/??/??)
- solaris: add missing parameter to open_cloexec() cal - solaris: add missing parameter to open_cloexec() cal
- osx: fix up audio format first, then apply it to device - osx: fix up audio format first, then apply it to device
* player_thread: fix assertion failure due to early seek * player_thread: fix assertion failure due to early seek
* output_thread: fix double lock
ver 0.16 (2010/12/11) ver 0.16 (2010/12/11)
......
...@@ -463,12 +463,9 @@ ao_play_chunk(struct audio_output *ao, const struct music_chunk *chunk) ...@@ -463,12 +463,9 @@ ao_play_chunk(struct audio_output *ao, const struct music_chunk *chunk)
/* don't automatically reopen this device for /* don't automatically reopen this device for
10 seconds */ 10 seconds */
g_mutex_lock(ao->mutex);
assert(ao->fail_timer == NULL); assert(ao->fail_timer == NULL);
ao->fail_timer = g_timer_new(); ao->fail_timer = g_timer_new();
g_mutex_unlock(ao->mutex);
return false; return false;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment