impl-node: always INACTIVATE a node when stopping

Set the node state INACTIVE on the client and server side in all cases
when stopping to ensure nothing tries to schedule the node anymore.
This commit is contained in:
Wim Taymans 2024-08-08 15:15:39 +02:00
parent 5afdd54277
commit cc2c86a55b
2 changed files with 11 additions and 11 deletions

View file

@ -2400,13 +2400,14 @@ static int do_unprepare_client(struct spa_loop *loop, bool async, uint32_t seq,
struct link *l;
pw_log_debug("%p prepared:%d ", c, c->rt.prepared);
if (!c->rt.prepared)
return 0;
old_state = SPA_ATOMIC_XCHG(c->activation->status, PW_NODE_ACTIVATION_INACTIVE);
if (old_state != PW_NODE_ACTIVATION_FINISHED)
trigger = get_time_ns(c->l->system);
if (!c->rt.prepared)
return 0;
spa_list_for_each(l, &c->rt.target_links, target_link) {
if (!c->async && trigger != 0)
l->trigger(l, trigger);