Index: tests/isolate/kill2_test.dart |
diff --git a/tests/isolate/ping_pause_test.dart b/tests/isolate/kill2_test.dart |
similarity index 64% |
copy from tests/isolate/ping_pause_test.dart |
copy to tests/isolate/kill2_test.dart |
index 11fa951f0af29a4ba4ac2dba37ffd4eab5a0f3e5..911cd698e998186eb8eda9ff1b165d98ae88e313 100644 |
--- a/tests/isolate/ping_pause_test.dart |
+++ b/tests/isolate/kill2_test.dart |
@@ -25,25 +25,20 @@ void main() { |
completer.future.then((echoPort) { |
reply.handler = (v) { |
result.add(v); |
- if (v == 0) { |
- Expect.listEquals([4, 3, 2, 1, 0], result); |
- reply.close(); |
- asyncEnd(); |
+ if (v == 2) { |
+ isolate.kill(Isolate.BEFORE_NEXT_EVENT); |
} |
+ echoPort.send(v - 1); |
}; |
+ RawReceivePort exitSignal; |
+ exitSignal = new RawReceivePort((_) { |
+ Expect.listEquals([4, 3, 2], result); |
+ exitSignal.close(); |
+ reply.close(); |
+ asyncEnd(); |
+ }); |
+ isolate.addOnExitListener(exitSignal.sendPort); |
echoPort.send(4); |
- echoPort.send(3); |
- Capability resume = isolate.pause(); |
- var pingPort = new RawReceivePort(); |
- pingPort.handler = (_) { |
- Expect.isTrue(result.length <= 2); |
- echoPort.send(0); |
- isolate.resume(resume); |
- pingPort.close(); |
- }; |
- isolate.ping(pingPort.sendPort, Isolate.PING_CONTROL); |
- echoPort.send(2); |
- echoPort.send(1); |
}); |
}); |
} |