mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -04:00
context: handle transport updates better
The transport update is set in the node properties. If one client tries to start and another tries to stop we have two conflicting desired states in the nodes. Fix this by making the state update a one time property and remove it from the sever and client properties after updating it. We then need to keep the new state around and apply it once. Keep the node driver state as it is unless there was a transport state update. Fixes #4543
This commit is contained in:
parent
98b6469b88
commit
d5f0c8a550
4 changed files with 33 additions and 18 deletions
|
|
@ -7297,6 +7297,8 @@ static int transport_update(struct client* c, int active)
|
|||
PW_CLIENT_NODE_UPDATE_INFO,
|
||||
0, NULL, &c->info);
|
||||
c->info.change_mask = 0;
|
||||
|
||||
pw_properties_set(c->props, PW_KEY_NODE_TRANSPORT, NULL);
|
||||
pw_thread_loop_unlock(c->context.loop);
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue