diff options
| author | 2016-03-07 10:25:04 -0800 | |
|---|---|---|
| committer | 2016-03-07 13:14:45 -0800 | |
| commit | bcd9dd7d1223eaa60f188d1a109d26e5e0143e10 (patch) | |
| tree | b9b121de21cbc0a97cf9138a6f66d3df4b1aee65 /runtime/gc/heap.h | |
| parent | 810ef3768021b5fc7b47e663e037e49c46f8c916 (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.h | 4 |
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; |