dispose method

void dispose()

Disposes of the resources associated with this signal, executing the onDisposeCallback.

Implementation

void dispose() {
  if (isDisposed) return;
  isDisposed = true;
  try {
    signalObserver?.onSignalDisposed(this);
  } finally {
    try {
      onDisposeCallback?.call();
    } finally {
      // A manually disposed signal must not keep notifying consumers that
      // were attached before disposal. Auto-disposed signals already have
      // no observers and can still be observed again later.
      observers.clear();
    }
  }
}