notifySignal<T> function

void notifySignal<T>(
  1. SignalReactiveNode<T> signal
)

Invalidates a signal so that subscribers re-evaluate without changing the stored value.

Parameters:

  • signal: Signal to invalidate

Example:

final cacheAwareSignal = CustomSignalNode<int>(0);
notifySignal(cacheAwareSignal);

Implementation

@pragma("vm:prefer-inline")
@pragma("wasm:prefer-inline")
@pragma("dart2js:prefer-inline")
void notifySignal<T>(SignalReactiveNode<T> signal) {
  signal.flags = ReactiveFlags.mutable | ReactiveFlags.dirty;

  var subs = signal.subs;

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

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

  JoltDebug.notify(signal);
}