close method
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;
}