commit
1ab83e668f
@ -7,8 +7,8 @@ dependencies:
|
||||
collection: '>=1.1.3 <2.0.0'
|
||||
intl: '>=0.12.4+2 <0.13.0'
|
||||
material_design_icons: '>=0.0.3 <0.1.0'
|
||||
sky_engine: 0.0.70
|
||||
sky_services: 0.0.70
|
||||
sky_engine: 0.0.71
|
||||
sky_services: 0.0.71
|
||||
vector_math: '>=1.4.3 <2.0.0'
|
||||
|
||||
# To pin the transitive dependency through mojo_sdk.
|
||||
|
@ -32,27 +32,27 @@ class PipeToFile {
|
||||
|
||||
Future<int> drain() {
|
||||
Completer<int> completer = new Completer();
|
||||
// TODO(mpcomplete): Is it legit to pass an async callback to subscribe?
|
||||
_events.subscribe((List<int> event) async {
|
||||
int signal = event[1];
|
||||
if (MojoHandleSignals.isReadable(signal)) {
|
||||
int result = await _doRead();
|
||||
if (result != MojoResult.kOk) {
|
||||
_events.subscribe((int signal) {
|
||||
(() async {
|
||||
if (MojoHandleSignals.isReadable(signal)) {
|
||||
int result = await _doRead();
|
||||
if (result != MojoResult.kOk) {
|
||||
_events.close();
|
||||
_events = null;
|
||||
_outputStream.close();
|
||||
completer.complete(result);
|
||||
} else {
|
||||
_events.enableReadEvents();
|
||||
}
|
||||
} else if (MojoHandleSignals.isPeerClosed(signal)) {
|
||||
_events.close();
|
||||
_events = null;
|
||||
_outputStream.close();
|
||||
completer.complete(result);
|
||||
completer.complete(MojoResult.kOk);
|
||||
} else {
|
||||
_events.enableReadEvents();
|
||||
throw 'Unexpected handle event: ${MojoHandleSignals.string(signal)}';
|
||||
}
|
||||
} else if (MojoHandleSignals.isPeerClosed(signal)) {
|
||||
_events.close();
|
||||
_events = null;
|
||||
_outputStream.close();
|
||||
completer.complete(MojoResult.kOk);
|
||||
} else {
|
||||
throw 'Unexpected handle event: ${MojoHandleSignals.string(signal)}';
|
||||
}
|
||||
})();
|
||||
});
|
||||
return completer.future;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user