| Index: runtime/bin/vmservice/vmservice.dart
|
| diff --git a/runtime/bin/vmservice/vmservice.dart b/runtime/bin/vmservice/vmservice.dart
|
| index e074e9a4d4b6663c78fa2652a7c9f2ca5fbd48c4..f1f8995a7396b1d61ad395f97d9c59bdb89b30d4 100644
|
| --- a/runtime/bin/vmservice/vmservice.dart
|
| +++ b/runtime/bin/vmservice/vmservice.dart
|
| @@ -6,16 +6,45 @@ library vmservice;
|
|
|
| import 'dart:async';
|
| import 'dart:json' as JSON;
|
| +// TODO(11927): Factor 'dart:io' dependency into separate library.
|
| import 'dart:io';
|
| import 'dart:isolate';
|
| import 'dart:typed_data';
|
| import 'dart:utf' as UTF;
|
|
|
|
|
| -void messageHandler(message, SendPort replyTo) {
|
| -}
|
| +class VmService {
|
| + static VmService _instance;
|
| + RunningIsolates runningIsolates = new RunningIsolates();
|
| +
|
| + void controlMessageHandler(int code, SendPort sp) {
|
| + switch (code) {
|
| + case Constants.ISOLATE_STARTUP_MESSAGE_ID:
|
| + runningIsolates.isolateStartup(sp);
|
| + break;
|
| + case Constants.ISOLATE_SHUTDOWN_MESSAGE_ID:
|
| + runningIsolates.isolateShutdown(sp);
|
| + break;
|
| + }
|
| + }
|
|
|
| + void messageHandler(message, SendPort replyTo) {
|
| + if (message is List && message.length == 2) {
|
| + controlMessageHandler(message[0], message[1]);
|
| + }
|
| + }
|
|
|
| -main() {
|
| - port.receive(messageHandler);
|
| + VmService._internal() {
|
| + port.receive(messageHandler);
|
| + }
|
| +
|
| + factory VmService() {
|
| + if (VmService._instance == null) {
|
| + VmService._instance = new VmService._internal();
|
| + }
|
| + return _instance;
|
| + }
|
| }
|
| +
|
| +void sendServiceMessage(SendPort sp, ReceivePort rp, Object m)
|
| + native "SendServiceMessage";
|
|
|