Index: runtime/vm/debugger.cc |
diff --git a/runtime/vm/debugger.cc b/runtime/vm/debugger.cc |
index 0b3e26139a114c88b0c5c5638e52481a0dbdaf70..2c4d54bf04c0bd6dbd76796dab0c00c1fefdd77a 100644 |
--- a/runtime/vm/debugger.cc |
+++ b/runtime/vm/debugger.cc |
@@ -2515,7 +2515,12 @@ void Debugger::Pause(DebuggerEvent* event) { |
pause_event_->UpdateTimestamp(); |
obj_cache_ = new RemoteObjectCache(64); |
- InvokeEventHandler(event); |
+ // We are about to invoke the debuggers event handler. Disable interrupts |
+ // for this thread while waiting for debug commands over the service protocol. |
+ { |
+ DisableThreadInterruptsScope dtis(Thread::Current()); |
+ InvokeEventHandler(event); |
+ } |
pause_event_ = NULL; |
obj_cache_ = NULL; // Zone allocated |
@@ -2556,11 +2561,6 @@ void Debugger::HandleSteppingRequest(DebuggerStackTrace* stack_trace) { |
} |
} |
} |
- if (!isolate_->single_step()) { |
- // We are no longer single stepping, make sure that the ThreadInterrupter |
- // is awake. |
- ThreadInterrupter::WakeUp(); |
- } |
} |