31 lines
1.1 KiB
Diff
31 lines
1.1 KiB
Diff
|
https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/4456f2efd16d6190989a903f70f4419c2ca4c819
|
||
|
https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3316
|
||
|
https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3345
|
||
|
|
||
|
From 4456f2efd16d6190989a903f70f4419c2ca4c819 Mon Sep 17 00:00:00 2001
|
||
|
From: Wim Taymans <wtaymans@redhat.com>
|
||
|
Date: Mon, 10 Jul 2023 16:59:17 +0200
|
||
|
Subject: [PATCH] impl-node: remove the node from the target peers
|
||
|
|
||
|
When we destroy a node, we need to remove the node as a current
|
||
|
driver peer.
|
||
|
|
||
|
Not doing this has 2 problems:
|
||
|
- remote drivers still trigger our node
|
||
|
- the client-node does not clean up the memid for the activation and
|
||
|
we might reuse it later for a new node with the same fd.
|
||
|
|
||
|
See #3316
|
||
|
--- a/src/pipewire/impl-node.c
|
||
|
+++ b/src/pipewire/impl-node.c
|
||
|
@@ -1983,6 +1983,7 @@ void pw_impl_node_destroy(struct pw_impl_node *node)
|
||
|
|
||
|
/* remove ourself as a follower from the driver node */
|
||
|
spa_list_remove(&node->follower_link);
|
||
|
+ pw_impl_node_emit_peer_removed(node->driver_node, node);
|
||
|
remove_segment_owner(node->driver_node, node->info.id);
|
||
|
|
||
|
spa_list_consume(follower, &node->follower_list, follower_link) {
|
||
|
--
|
||
|
GitLab
|