From b4b7ba4cbb1c04194143c11fe24ac704a91a0fd3 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 3 Jun 2020 12:04:01 +0200 Subject: [PATCH] remote-node: suspend node before cleanup When the proxy is destroyed, suspend the node before we start removing the memory or else the node might still be using it from the data thread and crash. --- src/modules/module-client-node/remote-node.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/modules/module-client-node/remote-node.c b/src/modules/module-client-node/remote-node.c index 3d5a336d0..9d7bdd6be 100644 --- a/src/modules/module-client-node/remote-node.c +++ b/src/modules/module-client-node/remote-node.c @@ -1034,10 +1034,12 @@ static void client_node_destroy(void *_data) pw_log_debug("%p: destroy", data); - clean_node(data); - spa_hook_remove(&data->node_listener); + pw_impl_node_set_state(data->node, PW_NODE_STATE_SUSPENDED); + + clean_node(data); + data->client_node = NULL; if (data->proxy)