Index: runtime/bin/dbg_message.cc |
diff --git a/runtime/bin/dbg_message.cc b/runtime/bin/dbg_message.cc |
index a6358806daca30d265fda87d03c6b66a7fc05656..5e6a42eb49c71ab590e1c7711abe23d2c0b669da 100644 |
--- a/runtime/bin/dbg_message.cc |
+++ b/runtime/bin/dbg_message.cc |
@@ -1402,14 +1402,17 @@ void DbgMsgQueueList::ExceptionThrownHandler(Dart_IsolateId isolate_id, |
void DbgMsgQueueList::IsolateEventHandler(Dart_IsolateId isolate_id, |
Dart_IsolateEvent kind) { |
- DebuggerConnectionHandler::WaitForConnection(); |
- Dart_EnterScope(); |
if (kind == kCreated) { |
+ DebuggerConnectionHandler::WaitForConnection(); |
turnidge
2015/06/30 22:15:46
What led to the changes in this file?
zra
2015/07/20 22:23:38
The VM Isolate has no receive queue. Isolate::Shut
|
+ Dart_EnterScope(); |
DbgMsgQueue* msg_queue = AddIsolateMsgQueue(isolate_id); |
msg_queue->SendIsolateEvent(isolate_id, kind); |
+ Dart_ExitScope(); |
} else { |
DbgMsgQueue* msg_queue = GetIsolateMsgQueue(isolate_id); |
if (msg_queue != NULL) { |
+ DebuggerConnectionHandler::WaitForConnection(); |
+ Dart_EnterScope(); |
msg_queue->SendQueuedMsgs(); |
msg_queue->SendIsolateEvent(isolate_id, kind); |
if (kind == kInterrupted) { |
@@ -1418,9 +1421,11 @@ void DbgMsgQueueList::IsolateEventHandler(Dart_IsolateId isolate_id, |
ASSERT(kind == kShutdown); |
RemoveIsolateMsgQueue(isolate_id); |
} |
+ Dart_ExitScope(); |
} |
+ // If there is no recieve message queue, do not wait for a connection, and |
turnidge
2015/06/30 22:15:46
typo: receive
zra
2015/07/20 22:23:38
Done.
|
+ // ignore the message. |
} |
- Dart_ExitScope(); |
} |
} // namespace bin |