signalNotify<T> method

void signalNotify<T>(
  1. ReadonlySignal<T> signal
)

Force update a signal without changing its value

Implementation

@pragma('vm:prefer-inline')
@pragma('wasm:prefer-inline')
@pragma('dart2js:prefer-inline')
void signalNotify<T>(ReadonlySignal<T> signal) {
  signal.flags = 17 /* ReactiveFlags.mutable | ReactiveFlags.dirty */;

  Link? subs = signal.subs;

  while (subs != null) {
    subs.sub.flags |= 32 /* ReactiveFlags.pending */;
    shallowPropagate(subs);
    subs = subs.nextSub;
  }

  if (signal.subs != null && batchDepth == 0) {
    flush();
  }

  assert(() {
    getJoltDebugFn(signal)?.call(DebugNodeOperationType.notify, signal);
    return true;
  }());
}