diff options
Diffstat (limited to 'runtime/debugger.cc')
-rw-r--r-- | runtime/debugger.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/runtime/debugger.cc b/runtime/debugger.cc index af365310ef..969a229660 100644 --- a/runtime/debugger.cc +++ b/runtime/debugger.cc @@ -349,7 +349,10 @@ void Dbg::DdmSetThreadNotification(bool enable) { Dbg::DdmSendThreadNotification(thread, CHUNK_TYPE("THCR")); finish_barrier.Pass(cls_self); }); - size_t checkpoints = Runtime::Current()->GetThreadList()->RunCheckpoint(&fc); + // TODO: The above eventually results in calls to EventHandler::DispatchEvent, which does a + // ScopedThreadStateChange, which amounts to a thread state change inside the checkpoint run + // method. Hence the normal check would fail, and thus we specify Unchecked here. + size_t checkpoints = Runtime::Current()->GetThreadList()->RunCheckpointUnchecked(&fc); ScopedThreadSuspension sts(self, ThreadState::kWaitingForCheckPointsToRun); finish_barrier.Increment(self, checkpoints); } |