diff options
author | Ivan Maidanski <i.maidanski@samsung.com> | 2018-05-14 13:50:48 +0300 |
---|---|---|
committer | Mathieu Chartier <mathieuc@google.com> | 2018-06-05 19:04:14 +0000 |
commit | 2b69b9c65730638dd67d4376a7aee05a37e41198 (patch) | |
tree | e4bdff5a4697cf77d550a3c4ecbbddbb1af1a916 /compiler/optimizing/code_generator_utils.cc | |
parent | 197f1ef6f4f2411d011d7e8f696775c3fbcffd86 (diff) |
Fix deadlock between ConcurrentCopying and thread holding dex_lock exclusively
Similar to the issue addressed by
https://android-review.googlesource.com/628465, we observe a deadlock
between
- a thread executing ConcurrentCopying::RevokeThreadLocalMarkStacks
which has disabled weak references access and waiting for check_point
barrier;
- a thread which had acquired the mutator lock exclusively and was blocking
on a condition variable regarding weak references access; and
- a thread which cannot execute the checkpoint until it acquires the
dex_lock.
This change prevents garbage collection from occurring when dex_lock is held
exclusively.
Bug: 109720594
Test: m test-art-host
Change-Id: I7a7e8e20aada4a9fad344b2f2f45a233639cda14
Diffstat (limited to 'compiler/optimizing/code_generator_utils.cc')
0 files changed, 0 insertions, 0 deletions