dart-lang / core

This repository is home to core Dart packages.
https://pub.dev/publishers/dart.dev
BSD 3-Clause "New" or "Revised" License
19 stars 7 forks source link

StreamGroup close never completes unless removed first #372

Open curt-weber opened 5 months ago

curt-weber commented 5 months ago

StreamGroup close documentation states that it will close when streams in the group close, but this doesn't appear to be the case:

import 'dart:async';
import 'package:async/async.dart';

Future<void> main() async {
  final controller = StreamController.broadcast();
  final group = StreamGroup.broadcast();
  group.add(controller.stream);
  await controller.close();
  print('controller closed');
  await group.close();
  print('never');
}

The above will close properly if the controllers stream is removed before calling close. Am I missing something?