aboutsummaryrefslogtreecommitdiffstats
path: root/src/output/pulse_output_plugin.c
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2011-08-23 22:44:43 +0200
committerMax Kellermann <max@duempel.org>2011-08-23 22:45:47 +0200
commit25686e5bcee030a1e17f797f75258f26594bab39 (patch)
tree6bb9a94740343c56e32a76c910d437d71644b65e /src/output/pulse_output_plugin.c
parent8d70f808d981f34adef23d1e57b5b5fc9223c05b (diff)
downloadmpd-25686e5bcee030a1e17f797f75258f26594bab39.tar.gz
mpd-25686e5bcee030a1e17f797f75258f26594bab39.tar.xz
mpd-25686e5bcee030a1e17f797f75258f26594bab39.zip
pulse/output: fix deadlock when resuming the stream
Unlock the mainloop in all code paths.
Diffstat (limited to 'src/output/pulse_output_plugin.c')
-rw-r--r--src/output/pulse_output_plugin.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/output/pulse_output_plugin.c b/src/output/pulse_output_plugin.c
index d29fbd705..2635ed149 100644
--- a/src/output/pulse_output_plugin.c
+++ b/src/output/pulse_output_plugin.c
@@ -683,8 +683,10 @@ pulse_output_play(void *data, const void *chunk, size_t size, GError **error_r)
/* unpause if previously paused */
if (pulse_output_stream_is_paused(po) &&
- !pulse_output_stream_pause(po, false, error_r))
+ !pulse_output_stream_pause(po, false, error_r)) {
+ pa_threaded_mainloop_unlock(po->mainloop);
return 0;
+ }
/* wait until the server allows us to write */