scheduler: skip checking runnable from suspendable nodes

We used to skip the runnable state from driver nodes because we assume
that they will be activated from other nodes. We however need to make
this more general to all suspendable nodes.

This makes pw-play -> loopback1-sink loopback1-out -> loopback2-sink
loopback-out -> sink also work correctly because the loopback2-sink does
not activate loopback1-out then.
This commit is contained in:
Wim Taymans 2026-03-02 17:22:05 +01:00
parent 797cdbc72f
commit ea21281f38

View file

@ -582,9 +582,9 @@ again:
/* first look at all nodes and decide which one should be runnable */
spa_list_for_each(n, &context->node_list, link) {
/* we don't check drivers, they need to be made runnable
* from other nodes */
if (n->exported || !n->active || n->driver)
/* we don't check suspendable nodes, they need to be made
* runnable from other nodes */
if (n->exported || !n->active || n->can_suspend)
continue;
check_runnable(context, n);
}