summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Sebastien Hertz <shertz@google.com> 2017-04-14 14:18:36 +0200
committer Sebastien Hertz <shertz@google.com> 2017-04-14 14:22:18 +0200
commit70d60275cc2860bde50e5f9c5b151e94f745ae14 (patch)
treeafc785bedfa86320cce7a1d3c4578ae9763f076f
parentc1be9f2b776b4900e0603013f7c4d84e534f0bb0 (diff)
JDWP: fix Dbg::ResumeThread
A thread should be resumed if and only if it has been suspended by the debugger. Therefore, we must check the debug suspend count, not the suspend count (which includes debug suspend count). Otherwise we could end up resuming a thread that has been suspended for another reason (like a GC) but not by the debugger itself. Bug: 27385848 Test: art/tools/run-jdwp-tests.sh --mode=host --variant=X64 Change-Id: I70ed6dfc233501e92332634650babf21ba911048
-rw-r--r--runtime/debugger.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/runtime/debugger.cc b/runtime/debugger.cc
index 868d8dfea4..039b60a26d 100644
--- a/runtime/debugger.cc
+++ b/runtime/debugger.cc
@@ -2453,7 +2453,7 @@ void Dbg::ResumeThread(JDWP::ObjectId thread_id) {
bool needs_resume;
{
MutexLock mu2(soa.Self(), *Locks::thread_suspend_count_lock_);
- needs_resume = thread->GetSuspendCount() > 0;
+ needs_resume = thread->GetDebugSuspendCount() > 0;
}
if (needs_resume) {
Runtime::Current()->GetThreadList()->Resume(thread, true);