everSync<T> method

Disposer everSync<T>(
  1. SintListenable<T> listenable,
  2. void callback(
    1. T
    )
)

Synchronous, zero-Stream worker that invokes callback immediately whenever listenable notifies (including coalesced Sint.batch flushes). Automatically disposes when this controller closes.

Implementation

Disposer everSync<T>(
  SintListenable<T> listenable,
  void Function(T) callback,
) {
  final disposer = listenable.addListener(() {
    if (!isDisposed && !listenable.isDisposed) {
      callback(listenable.peek);
    }
  });
  _syncDisposers.add(disposer);
  return () {
    disposer();
    _syncDisposers.remove(disposer);
  };
}