| Index: lib/src/utils.dart
|
| diff --git a/lib/src/utils.dart b/lib/src/utils.dart
|
| index 5f970dea83c48d48e708563dcff8827df498186d..cab8077df8fb9c20030cacab952ae37c3f7abbe3 100644
|
| --- a/lib/src/utils.dart
|
| +++ b/lib/src/utils.dart
|
| @@ -352,12 +352,17 @@ Future maybeFirst(Stream stream) {
|
| /// either completed or been canceled.
|
| CancelableOperation cancelableNext(StreamQueue queue) {
|
| var fork = queue.fork();
|
| - var completer = new CancelableCompleter(
|
| - onCancel: () => fork.cancel(immediate: true));
|
| + var canceled = false;
|
| + var completer = new CancelableCompleter(onCancel: () {
|
| + canceled = true;
|
| + return fork.cancel(immediate: true);
|
| + });
|
| +
|
| completer.complete(fork.next.then((_) {
|
| fork.cancel();
|
| - return queue.next;
|
| + return canceled ? null : queue.next;
|
| }));
|
| +
|
| return completer.operation;
|
| }
|
|
|
|
|