context: stop scanning on feedback links

If we have a feedback link around a driver, stop scanning for
runnable nodes or else we will be looping forever.

Fixes #3621
This commit is contained in:
Wim Taymans 2023-11-06 15:44:55 +01:00
parent 032955fffe
commit 35b115fd6c

View file

@ -817,6 +817,8 @@ static inline int run_nodes(struct pw_context *context, struct pw_impl_node *nod
if (!t->active || !l->prepared ||
(!t->driving && SPA_FLAG_IS_SET(t->checked, 1u<<direction)))
continue;
if (t->driving && p->node == t)
continue;
pw_log_debug(" peer %p: '%s'", t, t->name);
t->runnable = true;
@ -831,6 +833,8 @@ static inline int run_nodes(struct pw_context *context, struct pw_impl_node *nod
if (!t->active || !l->prepared ||
(!t->driving && SPA_FLAG_IS_SET(t->checked, 1u<<direction)))
continue;
if (t->driving && p->node == t)
continue;
pw_log_debug(" peer %p: '%s'", t, t->name);
t->runnable = true;