| Index: mojo/dart/packages/mojo/lib/src/drain_data.dart
|
| diff --git a/mojo/dart/packages/mojo/lib/src/drain_data.dart b/mojo/dart/packages/mojo/lib/src/drain_data.dart
|
| index dc630bfbdc7c1a2fc73b72023bcebd4af8a2fe6a..380d84e6f60e5eb7efdfb7e8f86d2df065b8949c 100644
|
| --- a/mojo/dart/packages/mojo/lib/src/drain_data.dart
|
| +++ b/mojo/dart/packages/mojo/lib/src/drain_data.dart
|
| @@ -19,10 +19,10 @@ class DataPipeDrainer {
|
| ByteData _copy(ByteData byteData) => new ByteData.view(
|
| new Uint8List.fromList(byteData.buffer.asUint8List()).buffer);
|
|
|
| - MojoResult _doRead() {
|
| + int _doRead() {
|
| ByteData thisRead = _consumer.beginRead();
|
| if (thisRead == null) {
|
| - throw 'Data pipe beginRead failed: ${_consumer.status}';
|
| + throw 'Data pipe beginRead failed: ${_consumer}';
|
| }
|
| _dataList.add(_copy(thisRead));
|
| _dataSize += thisRead.lengthInBytes;
|
| @@ -44,22 +44,23 @@ class DataPipeDrainer {
|
| Future<ByteData> drain() {
|
| var completer = new Completer();
|
| _eventSubscription.subscribe((List<int> event) {
|
| - var mojoSignals = new MojoHandleSignals(event[1]);
|
| - if (mojoSignals.isReadable) {
|
| - var result = _doRead();
|
| - if (!result.isOk) {
|
| + int mojoSignals = event[1];
|
| + if (MojoHandleSignals.isReadable(mojoSignals)) {
|
| + int result = _doRead();
|
| + if (result != MojoResult.kOk) {
|
| _eventSubscription.close();
|
| _eventSubscription = null;
|
| completer.complete(_concatData());
|
| } else {
|
| _eventSubscription.enableReadEvents();
|
| }
|
| - } else if (mojoSignals.isPeerClosed) {
|
| + } else if (MojoHandleSignals.isPeerClosed(mojoSignals)) {
|
| _eventSubscription.close();
|
| _eventSubscription = null;
|
| completer.complete(_concatData());
|
| } else {
|
| - throw 'Unexpected handle event: $mojoSignals';
|
| + String signals = MojoHandleSignals.string(mojoSignals);
|
| + throw 'Unexpected handle event: $signals';
|
| }
|
| });
|
| return completer.future;
|
|
|