dispose method

  1. @protected
  2. @mustCallSuper
void dispose()

Implementation

@protected
@mustCallSuper
void dispose() {
  assert(() {
    RiverpodBinding.debugInstance
        .providerListChangedFor(containerId: container._debugId);
    return true;
  }(), '');

  _mounted = false;
  _runOnDispose();

  for (final sub in _subscriptions.entries) {
    sub.key._dependents?.remove(this);
    sub.value.close();
  }

  for (final observer in _container._observers) {
    _runUnaryGuarded(
      observer.didDisposeProvider,
      _origin,
    );
  }

  _listeners.clear();
  state.dispose();
}