summaryrefslogtreecommitdiff
path: root/runtime/gc/heap.h
diff options
context:
space:
mode:
author Mathieu Chartier <mathieuc@google.com> 2016-03-07 10:25:04 -0800
committer Mathieu Chartier <mathieuc@google.com> 2016-03-07 13:14:45 -0800
commitbcd9dd7d1223eaa60f188d1a109d26e5e0143e10 (patch)
treeb9b121de21cbc0a97cf9138a6f66d3df4b1aee65 /runtime/gc/heap.h
parent810ef3768021b5fc7b47e663e037e49c46f8c916 (diff)
Don't use ScopedObjectAccess in Heap::DumpSpaces
ScopedObjectAccess does not work well if the mutator lock is excusively held while in a suspend thread state. This caused deadlocks and DCHECK failures. Bug: 27493316 (cherry picked from commit 03d21bc5bed887243ff6ce3531179185ffd3532c) Change-Id: I5d67f74fc7082761e45dc1d7778b0ea7fceaaf8f
Diffstat (limited to 'runtime/gc/heap.h')
-rw-r--r--runtime/gc/heap.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/runtime/gc/heap.h b/runtime/gc/heap.h
index 889069d8ae..e0a53a0cc8 100644
--- a/runtime/gc/heap.h
+++ b/runtime/gc/heap.h
@@ -651,8 +651,8 @@ class Heap {
}
}
- std::string DumpSpaces() const WARN_UNUSED;
- void DumpSpaces(std::ostream& stream) const;
+ void DumpSpaces(std::ostream& stream) const SHARED_REQUIRES(Locks::mutator_lock_);
+ std::string DumpSpaces() const SHARED_REQUIRES(Locks::mutator_lock_);
// Dump object should only be used by the signal handler.
void DumpObject(std::ostream& stream, mirror::Object* obj) NO_THREAD_SAFETY_ANALYSIS;