Make synchronous broadcast StreamController throw if adding event while adding event.

It already throws if there is more than one listener, but this change
also makes it throw if there is only one listener, for consistency.

Also add SynchronousStreamController abstract class.
It only contains documentation for synchronous stream controllers.

BUG= http://dartbug.com/22240
R=floitsch@google.com

Review URL: https://codereview.chromium.org//882713009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart/pkg/async@43946 260f80e4-7a28-3924-810f-c04153c831b5
2 files changed
tree: a9202ed126047c6b964f0086c5787daf15b4485e
  1. lib/
  2. test/
  3. LICENSE
  4. pubspec.yaml
  5. README.md
README.md

The async package will contain tools to work with asynchronous computations.

The package contains sub-libraries with different utilities.

Zipping streams

The “stream_zip.dart” sub-library contains functionality to combine several streams of events into a single stream of tuples of events.

Results

The “result.dart” sub-library introduces a Result class that can hold either a value or an error. It allows capturing an asynchronous computation which can give either a value or an error, into an asynchronous computation that always gives a Result value, where errors can be treated as data. It also allows releasing the Result back into an asynchronous computation.

History.

This package is unrelated to the discontinued async package with version 0.1.7.