| Index: runtime/vm/service/vmservice.dart
|
| diff --git a/runtime/vm/service/vmservice.dart b/runtime/vm/service/vmservice.dart
|
| index 3f53dbeb4c2a64add2bd93269daf78dde3e52fff..10e73c9b88257fb84aa423bb31a6656b2347cfdd 100644
|
| --- a/runtime/vm/service/vmservice.dart
|
| +++ b/runtime/vm/service/vmservice.dart
|
| @@ -16,6 +16,9 @@ part 'running_isolates.dart';
|
| part 'message.dart';
|
| part 'message_router.dart';
|
|
|
| +final RawReceivePort isolateLifecyclePort = new RawReceivePort();
|
| +final RawReceivePort scriptLoadPort = new RawReceivePort();
|
| +
|
| class VMService extends MessageRouter {
|
| static VMService _instance;
|
| /// Collection of currently connected clients.
|
| @@ -104,13 +107,14 @@ class VMService extends MessageRouter {
|
| }
|
|
|
| VMService._internal()
|
| - : eventPort = new RawReceivePort() {
|
| + : eventPort = isolateLifecyclePort {
|
| eventPort.handler = messageHandler;
|
| }
|
|
|
| factory VMService() {
|
| if (VMService._instance == null) {
|
| VMService._instance = new VMService._internal();
|
| + _onStart();
|
| }
|
| return _instance;
|
| }
|
| @@ -142,9 +146,8 @@ class VMService extends MessageRouter {
|
| }
|
|
|
| RawReceivePort boot() {
|
| - // Boot the VMService.
|
| // Return the port we expect isolate startup and shutdown messages on.
|
| - return new VMService().eventPort;
|
| + return isolateLifecyclePort;
|
| }
|
|
|
| void _registerIsolate(int port_id, SendPort sp, String name) {
|
| @@ -154,3 +157,5 @@ void _registerIsolate(int port_id, SendPort sp, String name) {
|
|
|
| void _setEventMask(int mask)
|
| native "VMService_SetEventMask";
|
| +
|
| +void _onStart() native "VMService_OnStart";
|
|
|