Index: runtime/vm/debugger.cc |
diff --git a/runtime/vm/debugger.cc b/runtime/vm/debugger.cc |
index 2c4d54bf04c0bd6dbd76796dab0c00c1fefdd77a..0b3e26139a114c88b0c5c5638e52481a0dbdaf70 100644 |
--- a/runtime/vm/debugger.cc |
+++ b/runtime/vm/debugger.cc |
@@ -2515,12 +2515,7 @@ void Debugger::Pause(DebuggerEvent* event) { |
pause_event_->UpdateTimestamp(); |
obj_cache_ = new RemoteObjectCache(64); |
- // 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); |
- } |
+ InvokeEventHandler(event); |
pause_event_ = NULL; |
obj_cache_ = NULL; // Zone allocated |
@@ -2561,6 +2556,11 @@ 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(); |
+ } |
} |