shallowPropagate function

void shallowPropagate(
  1. Link theLink
)

Marks direct subscribers reachable from theLink dirty.

This does not recurse into deeper subscriber chains. It is typically used after a value has already been recomputed.

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) {
        (sub as EffectNode).notifyEffect();
      }
    }
  } while ((link = link.nextSub) != null);
}