From 2b6542467c5b14be21e2319bac3b88f42696ddcb Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 20 Jul 2011 18:35:24 +0200 Subject: output_thread: unlock the mutex while calling cancel() The method may take longer, and we shouldn't be holding the lock. --- src/output_thread.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/output_thread.c b/src/output_thread.c index 4e0446791..2c2b8d116 100644 --- a/src/output_thread.c +++ b/src/output_thread.c @@ -640,8 +640,13 @@ static gpointer audio_output_task(gpointer arg) case AO_COMMAND_CANCEL: ao->chunk = NULL; - if (ao->open) + + if (ao->open) { + g_mutex_unlock(ao->mutex); ao_plugin_cancel(ao->plugin, ao->data); + g_mutex_lock(ao->mutex); + } + ao_command_finished(ao); /* the player thread will now clear our music -- cgit v1.2.3