aboutsummaryrefslogtreecommitdiffstats
path: root/src/output_thread.c
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2009-10-21 08:07:07 +0200
committerMax Kellermann <max@duempel.org>2009-10-21 08:07:07 +0200
commit1a6ed811935916b8cc27d9eeb7f3be3413e643f7 (patch)
tree4ec1dcdec2885a8ef6446db0c14298d92a06d059 /src/output_thread.c
parentb2b300b6353fad372e78b14c36dea719e2da22ca (diff)
downloadmpd-1a6ed811935916b8cc27d9eeb7f3be3413e643f7.tar.gz
mpd-1a6ed811935916b8cc27d9eeb7f3be3413e643f7.tar.xz
mpd-1a6ed811935916b8cc27d9eeb7f3be3413e643f7.zip
output_thread: check again if output is open on PAUSE
Basically the same as the 0.15.5 patch "check again if output is open on CANCEL". Same race condition, same fix.
Diffstat (limited to '')
-rw-r--r--src/output_thread.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/output_thread.c b/src/output_thread.c
index 9ca844623..770b377e8 100644
--- a/src/output_thread.c
+++ b/src/output_thread.c
@@ -248,6 +248,15 @@ static gpointer audio_output_task(gpointer arg)
break;
case AO_COMMAND_PAUSE:
+ if (!ao->open) {
+ /* the output has failed after
+ audio_output_all_pause() has
+ submitted the PAUSE command; bail
+ out */
+ ao_command_finished(ao);
+ break;
+ }
+
ao_pause(ao);
/* don't "break" here: this might cause
ao_play() to be called when command==CLOSE