in lib/src/stream_group.dart [229:254]
Future<void>? _onCancel() {
_state = _StreamGroupState.canceled;
var futures = _subscriptions.entries
.map((entry) {
var subscription = entry.value;
try {
if (subscription != null) return subscription.cancel();
return entry.key.listen(null).cancel();
} catch (_) {
return null;
}
})
.whereNotNull()
.toList();
_subscriptions.clear();
var onIdleController = _onIdleController;
if (onIdleController != null && !onIdleController.isClosed) {
onIdleController.add(null);
onIdleController.close();
}
return futures.isEmpty ? null : Future.wait(futures);
}