blob: 3902193a1fa947aed44e3e3a787d8ceeea97d0de [file] [log] [blame]
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
part of dart._vmservice;
class RunningIsolate implements MessageRouter {
final int portId;
final SendPort sendPort;
final String name;
final pendingMessagesReceivePorts = <RawReceivePort>[];
RunningIsolate(this.portId, this.sendPort, this.name);
void onIsolateExit() {
pendingMessagesReceivePorts.forEach((port) {
(port as RawReceivePort).close();
});
}
String get serviceId => 'isolates/$portId';
@override
Future<Response> routeRequest(VMService service, Message message) {
// Send message to isolate.
return message.sendToIsolate(pendingMessagesReceivePorts, sendPort);
}
@override
void routeResponse(Message message) {}
}