aboutsummaryrefslogtreecommitdiffstats
path: root/src
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
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 'src')
-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