shallowPropagate function
Shallow propagates changes without deep recursion.
Parameters:
theLink: The link to start shallow propagation from
Example:
final signalNode = CustomSignalNode<int>(0);
shallowPropagate(signalNode.subs!);
Implementation
void shallowPropagate(Link theLink) {
Link? link = theLink;
do {
final sub = link!.sub;
final flags = sub.flags;
if (flags & (ReactiveFlags.pending | ReactiveFlags.dirty) ==
(ReactiveFlags.pending)) {
sub.flags = flags | (ReactiveFlags.dirty);
if (flags & (ReactiveFlags.watching | ReactiveFlags.recursedCheck) ==
ReactiveFlags.watching) {
notifyEffect(sub);
}
}
} while ((link = link.nextSub) != null);
}