aboutsummaryrefslogtreecommitdiffstats
path: root/src/output_thread.c
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2009-08-14 11:52:12 +0200
committerMax Kellermann <max@duempel.org>2009-08-14 11:52:12 +0200
commit7133f560ec24c90671a40c9f9bc9cea6eb31cc17 (patch)
tree09d34f30a6173ff58afe37ece71bcaaca5d4423f /src/output_thread.c
parent7dddd9beda2bb0505758bb6a32cae6feb3215733 (diff)
downloadmpd-7133f560ec24c90671a40c9f9bc9cea6eb31cc17.tar.gz
mpd-7133f560ec24c90671a40c9f9bc9cea6eb31cc17.tar.xz
mpd-7133f560ec24c90671a40c9f9bc9cea6eb31cc17.zip
output: fixed shout stuck pause bug
Explicitly make the output thread leave the ao_pause() loop. This patch is a workaround, and the "pause" flag is not managed in a thread-safe way, but that's good enough for now.
Diffstat (limited to 'src/output_thread.c')
-rw-r--r--src/output_thread.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/output_thread.c b/src/output_thread.c
index d414ba8d5..785ac808f 100644
--- a/src/output_thread.c
+++ b/src/output_thread.c
@@ -165,6 +165,7 @@ static void ao_pause(struct audio_output *ao)
bool ret;
ao_plugin_cancel(ao->plugin, ao->data);
+ ao->pause = true;
ao_command_finished(ao);
do {
@@ -174,6 +175,8 @@ static void ao_pause(struct audio_output *ao)
break;
}
} while (ao->command == AO_COMMAND_NONE);
+
+ ao->pause = false;
}
static gpointer audio_output_task(gpointer arg)