Index: runtime/vm/dart.cc |
diff --git a/runtime/vm/dart.cc b/runtime/vm/dart.cc |
index 248d41393b2ea42c57875e7a5da717a0f6ecfcc5..dd5dc011b1b9fd05bc81d1a1676d0e0cf0d558d1 100644 |
--- a/runtime/vm/dart.cc |
+++ b/runtime/vm/dart.cc |
@@ -17,6 +17,7 @@ |
#include "vm/object_id_ring.h" |
#include "vm/port.h" |
#include "vm/profiler.h" |
+#include "vm/service.h" |
#include "vm/simulator.h" |
#include "vm/snapshot.h" |
#include "vm/stub_code.h" |
@@ -84,7 +85,8 @@ const char* Dart::InitOnce(Dart_IsolateCreateCallback create, |
Dart_FileReadCallback file_read, |
Dart_FileWriteCallback file_write, |
Dart_FileCloseCallback file_close, |
- Dart_EntropySource entropy_source) { |
+ Dart_EntropySource entropy_source, |
+ Dart_ServiceIsolateCreateCalback service_create) { |
// TODO(iposva): Fix race condition here. |
if (vm_isolate_ != NULL || !Flags::Initialized()) { |
return "VM already initialized."; |
@@ -141,6 +143,7 @@ const char* Dart::InitOnce(Dart_IsolateCreateCallback create, |
Isolate::SetCurrent(NULL); // Unregister the VM isolate from this thread. |
Isolate::SetCreateCallback(create); |
+ Isolate::SetServiceCreateCallback(service_create); |
Isolate::SetInterruptCallback(interrupt); |
Isolate::SetUnhandledExceptionCallback(unhandled); |
Isolate::SetShutdownCallback(shutdown); |
@@ -244,6 +247,7 @@ RawError* Dart::InitializeIsolate(const uint8_t* snapshot_buffer, void* data) { |
if (FLAG_print_class_table) { |
isolate->class_table()->Print(); |
} |
+ Service::SendIsolateStartupMessage(); |
return Error::null(); |
} |
@@ -252,6 +256,7 @@ void Dart::RunShutdownCallback() { |
Isolate* isolate = Isolate::Current(); |
void* callback_data = isolate->init_callback_data(); |
Dart_IsolateShutdownCallback callback = Isolate::ShutdownCallback(); |
+ Service::SendIsolateShutdownMessage(); |
if (callback != NULL) { |
(callback)(callback_data); |
} |