unwatched function
Cleans up dependency links when a node no longer has subscribers.
Parameters:
node: Node that lost its last subscriber
Example:
final link = dep.subs!; // Link between dep and subscriber
if (link.dep.subs == null) {
unwatched(link.dep);
}
Implementation
@pragma("vm:prefer-inline")
@pragma("wasm:prefer-inline")
@pragma("dart2js:prefer-inline")
@override
void unwatched(ReactiveNode node) {
if (node is EffectBaseReactiveNode) {
// if (!node.flags.hasAny(ReactiveFlags.mutable)) {
// ignore: discarded_futures
node.dispose();
} else if (node.depsTail != null) {
node
..depsTail = null
..flags = (ReactiveFlags.mutable | ReactiveFlags.dirty);
purgeDeps(node);
}
}