Index: mojo/public/dart/src/event_stream.dart |
diff --git a/mojo/public/dart/src/event_stream.dart b/mojo/public/dart/src/event_stream.dart |
index 9c8321709332fe05ab77edf1ca35dabf13b2dba9..c1251140acaaefd870bf0e18085337e16cf8a879 100644 |
--- a/mojo/public/dart/src/event_stream.dart |
+++ b/mojo/public/dart/src/event_stream.dart |
@@ -179,14 +179,6 @@ class MojoEventStreamListener { |
subscription = _eventStream.listen((List<int> event) { |
var signalsWatched = new MojoHandleSignals(event[0]); |
var signalsReceived = new MojoHandleSignals(event[1]); |
- if (signalsReceived.isPeerClosed) { |
- if (onClosed != null) onClosed(); |
- close(); |
- // The peer being closed obviates any other signal we might |
- // have received since we won't be able to read or write the handle. |
- // Thus, we just return before invoking other handlers. |
- return; |
- } |
_isInHandler = true; |
if (signalsReceived.isReadable) { |
assert(_eventStream.readyRead); |
@@ -200,6 +192,14 @@ class MojoEventStreamListener { |
_eventStream.enableSignals(signalsWatched); |
} |
_isInHandler = false; |
+ if (signalsReceived.isPeerClosed) { |
+ if (onClosed != null) onClosed(); |
+ close(); |
+ // The peer being closed obviates any other signal we might |
+ // have received since we won't be able to read or write the handle. |
+ // Thus, we just return before invoking other handlers. |
+ return; |
+ } |
}, onDone: close); |
return subscription; |
} |