From 9abcff831211c8ed1fd9d4f098c0d1f696e1db42 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 7 Sep 2020 16:06:20 +0200 Subject: [PATCH] stream: Only disconnect once When a stream is destroyed while disconnecting, don't try to disconnect again. Fixes #280 --- src/pipewire/filter.c | 3 ++- src/pipewire/stream.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/pipewire/filter.c b/src/pipewire/filter.c index 4bfcba85c..c366d310c 100644 --- a/src/pipewire/filter.c +++ b/src/pipewire/filter.c @@ -1104,7 +1104,8 @@ void pw_filter_destroy(struct pw_filter *filter) pw_filter_emit_destroy(filter); - pw_filter_disconnect(filter); + if (!impl->disconnecting) + pw_filter_disconnect(filter); spa_list_consume(p, &impl->port_list, link) pw_filter_remove_port(p->user_data); diff --git a/src/pipewire/stream.c b/src/pipewire/stream.c index 0e062121f..c03c3b328 100644 --- a/src/pipewire/stream.c +++ b/src/pipewire/stream.c @@ -1258,7 +1258,8 @@ void pw_stream_destroy(struct pw_stream *stream) pw_stream_emit_destroy(stream); - pw_stream_disconnect(stream); + if (!impl->disconnecting) + pw_stream_disconnect(stream); if (stream->core) { spa_hook_remove(&stream->core_listener);