close method

Future<void> close()

Closes every subscriber and discards queued values.

Implementation

Future<void> close() {
  final Future<void>? existing = _closeFuture;
  if (existing != null) {
    return existing;
  }
  _isClosed = true;
  final Future<void> closed = Future<void>.value();
  _closeFuture = closed;
  _replay.clear();
  final List<_HubSubscriber<T>> subscribers = _subscribers.toList();
  _subscribers.clear();
  for (final _HubSubscriber<T> subscriber in subscribers) {
    unawaited(subscriber.close());
  }
  return closed;
}