| Index: sdk/lib/mdv_observe_impl/mdv_observe_impl.dart
|
| diff --git a/sdk/lib/mdv_observe_impl/mdv_observe_impl.dart b/sdk/lib/mdv_observe_impl/mdv_observe_impl.dart
|
| index 577f0b8ce6d7c0e6baa1aea0fb82ce2868287456..e83a15d863726dccd4605405ce96f89630304a40 100644
|
| --- a/sdk/lib/mdv_observe_impl/mdv_observe_impl.dart
|
| +++ b/sdk/lib/mdv_observe_impl/mdv_observe_impl.dart
|
| @@ -63,15 +63,15 @@ typedef ObservableBase = Object with ObservableMixin;
|
| * call [notifyPropertyChange]. See that method for an example.
|
| */
|
| abstract class ObservableMixin implements Observable {
|
| - StreamController _multiplexController;
|
| + StreamController _broadcastController;
|
| List<ChangeRecord> _changes;
|
|
|
| Stream<List<ChangeRecord>> get changes {
|
| - if (_multiplexController == null) {
|
| - _multiplexController =
|
| - new StreamController<List<ChangeRecord>>.broadcast();
|
| + if (_broadcastController == null) {
|
| + _broadcastController =
|
| + new StreamController<List<ChangeRecord>>.broadcast(sync: true);
|
| }
|
| - return _multiplexController.stream;
|
| + return _broadcastController.stream;
|
| }
|
|
|
| void _deliverChanges() {
|
| @@ -79,7 +79,7 @@ abstract class ObservableMixin implements Observable {
|
| _changes = null;
|
| if (hasObservers && changes != null) {
|
| // TODO(jmesserly): make "changes" immutable
|
| - _multiplexController.add(changes);
|
| + _broadcastController.add(changes);
|
| }
|
| }
|
|
|
| @@ -87,8 +87,8 @@ abstract class ObservableMixin implements Observable {
|
| * True if this object has any observers, and should call
|
| * [notifyPropertyChange] for changes.
|
| */
|
| - bool get hasObservers => _multiplexController != null &&
|
| - _multiplexController.hasListener;
|
| + bool get hasObservers => _broadcastController != null &&
|
| + _broadcastController.hasListener;
|
|
|
| /**
|
| * Notify that the field [name] of this object has been changed.
|
|
|