Reapply "Active stream subscriptions".
Makes subscriptions the active part of a stream, with the stream itself being just an inert creator of subscriptions. This changes the behavior of a "single subscription" stream to match the documentation: After the subscription is canceled, you can't resubscribe to the stream. Previously, you could do that, but it was never documented or intended. This also makes the stream of a StreamController not be paused while before it's subscribed - it is always the subscription that is paused or not, and while there is no subscription, the stream cannot be paused. Previously the stream was set to paused until the first subscription in order to prevent events from being lost. That is handled independently of pauses now. Adds StreamController.multiplex constructor. This name is tentative, and likely to change. Its behavior may change as well. It currently provides a new single-subscription stream each time its "stream" getter is read, and you can subscribe to these. Adds StreamIterator class that allows iterating over a stream's data events using (async) "moveNext()" and "current", like a direct style Iterator (sorry, it won't work in a for-in loop). Review URL: https://codereview.chromium.org//16131003 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge@23237 260f80e4-7a28-3924-810f-c04153c831b5
Loading
Please register or sign in to comment