Index: runtime/vm/dart.cc |
diff --git a/runtime/vm/dart.cc b/runtime/vm/dart.cc |
index a9ddae550a4ad3599a3b43cb7c7ec28ab146a2f3..b8ce008357e4225479ec3459d6d97b4b6246c17c 100644 |
--- a/runtime/vm/dart.cc |
+++ b/runtime/vm/dart.cc |
@@ -14,6 +14,7 @@ |
#include "vm/handles.h" |
#include "vm/heap.h" |
#include "vm/isolate.h" |
+#include "vm/message_handler.h" |
#include "vm/metrics.h" |
#include "vm/object.h" |
#include "vm/object_store.h" |
@@ -36,6 +37,8 @@ namespace dart { |
DECLARE_FLAG(bool, print_class_table); |
DECLARE_FLAG(bool, trace_isolates); |
DECLARE_FLAG(bool, trace_time_all); |
+DECLARE_FLAG(bool, pause_isolates_on_start); |
+DECLARE_FLAG(bool, pause_isolates_on_exit); |
DEFINE_FLAG(bool, keep_code, false, |
"Keep deoptimized code for profiling."); |
DEFINE_FLAG(bool, shutdown, true, "Do a clean shutdown of the VM"); |
@@ -388,7 +391,12 @@ RawError* Dart::InitializeIsolate(const uint8_t* snapshot_buffer, void* data) { |
} |
ServiceIsolate::MaybeMakeServiceIsolate(I); |
- |
+ if (!ServiceIsolate::IsServiceIsolate(I)) { |
+ I->message_handler()->set_should_pause_on_start( |
+ FLAG_pause_isolates_on_start); |
+ I->message_handler()->set_should_pause_on_exit( |
+ FLAG_pause_isolates_on_exit); |
+ } |
ServiceIsolate::SendIsolateStartupMessage(); |
I->debugger()->NotifyIsolateCreated(); |