aboutsummaryrefslogtreecommitdiffstats
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
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.
-rw-r--r--NEWS1
-rw-r--r--src/output_thread.c9
2 files changed, 10 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 4478bec59..12574dd23 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,5 @@
ver 0.15.6 (2009/??/??)
+* output_thread: check again if output is open on PAUSE
ver 0.15.5 (2009/10/18)
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