| Index: sdk/lib/async/stream.dart
|
| diff --git a/sdk/lib/async/stream.dart b/sdk/lib/async/stream.dart
|
| index d1fe15b67e2edd1645fdbeed4e3772cbd1e5d27b..9f0f6a7ffb71f323955b13acb285445a4e536e61 100644
|
| --- a/sdk/lib/async/stream.dart
|
| +++ b/sdk/lib/async/stream.dart
|
| @@ -115,30 +115,28 @@ abstract class Stream<T> {
|
| }
|
|
|
| controller = new StreamController<T>(
|
| - onPauseStateChange: () {
|
| - if (controller.isPaused) {
|
| - timer.cancel();
|
| - timer = null;
|
| - watch.stop();
|
| - } else {
|
| - assert(timer == null);
|
| - Duration elapsed = watch.elapsed;
|
| - watch.start();
|
| - timer = new Timer(period - elapsed, () {
|
| - timer = null;
|
| - startPeriodicTimer();
|
| - sendEvent();
|
| - });
|
| - }
|
| + onListen: () {
|
| + watch.start();
|
| + startPeriodicTimer();
|
| },
|
| - onSubscriptionStateChange: () {
|
| - if (controller.hasListener) {
|
| - watch.start();
|
| - startPeriodicTimer();
|
| - } else {
|
| - if (timer != null) timer.cancel();
|
| + onPause: () {
|
| + timer.cancel();
|
| + timer = null;
|
| + watch.stop();
|
| + },
|
| + onResume: () {
|
| + assert(timer == null);
|
| + Duration elapsed = watch.elapsed;
|
| + watch.start();
|
| + timer = new Timer(period - elapsed, () {
|
| timer = null;
|
| - }
|
| + startPeriodicTimer();
|
| + sendEvent();
|
| + });
|
| + },
|
| + onCancel: () {
|
| + if (timer != null) timer.cancel();
|
| + timer = null;
|
| });
|
| return controller.stream;
|
| }
|
| @@ -1014,23 +1012,15 @@ abstract class StreamEventTransformer<S, T> implements StreamTransformer<S, T> {
|
| StreamController controller;
|
| StreamSubscription subscription;
|
| controller = new StreamController<T>(
|
| - onPauseStateChange: () {
|
| - if (controller.isPaused) {
|
| - subscription.pause();
|
| - } else {
|
| - subscription.resume();
|
| - }
|
| + onListen: () {
|
| + subscription = transformingStream.listen(
|
| + controller.add,
|
| + onError: controller.addError,
|
| + onDone: controller.close);
|
| },
|
| - onSubscriptionStateChange: () {
|
| - if (controller.hasListener) {
|
| - subscription = transformingStream.listen(
|
| - controller.add,
|
| - onError: controller.addError,
|
| - onDone: controller.close);
|
| - } else {
|
| - subscription.cancel();
|
| - }
|
| - });
|
| + onPause: () => subscription.pause(),
|
| + onResume: () => subscription.resume(),
|
| + onCancel: () => subscription.cancel());
|
| return controller.stream;
|
| }
|
|
|
|
|