diff options
author | Nicolas Geoffray <ngeoffray@google.com> | 2016-11-22 14:49:31 +0000 |
---|---|---|
committer | Nicolas Geoffray <ngeoffray@google.com> | 2016-11-29 21:05:51 +0000 |
commit | e51ca8bfa8a193b64901ad214842f213adca92eb (patch) | |
tree | b07b2534edc592d68b5461a3bdb8a31241892d54 /compiler/optimizing/graph_visualizer.cc | |
parent | eb9c58e88f8e0f4a0a413efce04b49b183ad23e3 (diff) |
Move inline caches GC handling in JitCodeCache.
Make the classes they hold weak references and visit
them during SweepJitRoots.
This fixes the newly introduced deadlock:
Thread1:
1) Lock JitCodeCache lock to create Profiling info for
ArtMethod m.
2) m is a copied method, we need to track the actual holder,
needing to decode a weak reference.
3) Weak references are not accessible due to GC.
GC Thread:
- Disallow weak reference access.
- Wait for checkpoint.
Thread2:
- Try to lock JitCodeCache lock
- Deadlock, as Thread1 owns the JitCodeCache lock.
Test: test-art-host
bug: 31289185
bug: 33198826
Change-Id: I7ee17631015450ace8d2a0264415a81c5a902bb8
Diffstat (limited to 'compiler/optimizing/graph_visualizer.cc')
0 files changed, 0 insertions, 0 deletions