sink: don't sync monitor suspend state when unlinking 68/178068/1
authorTanu Kaskinen <tanuk@iki.fi>
Thu, 22 Feb 2018 08:06:59 +0000 (10:06 +0200)
committerSangchul Lee <sc11.lee@samsung.com>
Tue, 8 May 2018 04:34:48 +0000 (13:34 +0900)
When the sink is unlinked, there's no need to update the monitor suspend
state. In fact, trying to do that causes an assertion failure, because
pa_source_sync_suspend() wasn't written to handle the case where the
sink is unlinked.

Change-Id: I6352eee5ec9b5b59234b738997f9c055a33b8a76
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
src/pulsecore/sink.c

index e781660..fa729f9 100644 (file)
@@ -560,7 +560,7 @@ static int sink_set_state(pa_sink *s, pa_sink_state_t state, pa_suspend_cause_t
     }
 
 finish:
-    if ((suspending || resuming || suspend_cause_changed) && s->monitor_source)
+    if ((suspending || resuming || suspend_cause_changed) && s->monitor_source && state != PA_SINK_UNLINKED)
         pa_source_sync_suspend(s->monitor_source);
 
     return ret;