summaryrefslogtreecommitdiff
path: root/runtime/debugger.cc
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/debugger.cc')
-rw-r--r--runtime/debugger.cc5
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);
}