From ea21281f38120ce609b12b7c379a073c3ac49a6a Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 2 Mar 2026 17:22:05 +0100 Subject: [PATCH] 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. --- src/modules/module-scheduler-v1.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/module-scheduler-v1.c b/src/modules/module-scheduler-v1.c index 0d5027cb5..25a219ea1 100644 --- a/src/modules/module-scheduler-v1.c +++ b/src/modules/module-scheduler-v1.c @@ -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); }