diff options
| author | 2020-03-21 13:17:52 +0000 | |
|---|---|---|
| committer | 2020-03-23 15:19:32 +0000 | |
| commit | 521644beb8f0a100b08a4cfb91c6aafb469925aa (patch) | |
| tree | b316373d4708d8653e6749d5b3a70f4263cf6f94 /runtime/jit/jit_code_cache.h | |
| parent | 7bbbe25f37ae70bebd121e0b4ea9bd53842281fe (diff) | |
Call JitCodeCache::FreeAllMethodHeaders under JIT lock.
This ensures that both ArtMethods and the code are removed
from the JIT atomically (otherwise other thread can interfere).
I am not sure if this is partial issue, but keeping the
allocated code and methods in sync makes sanity check happier.
Bug: 151137723
Test: test.py -b -r --host --jit --64
Change-Id: I8580a9112c86b277631c0b2f9dd245fd55a73559
Diffstat (limited to 'runtime/jit/jit_code_cache.h')
| -rw-r--r-- | runtime/jit/jit_code_cache.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/runtime/jit/jit_code_cache.h b/runtime/jit/jit_code_cache.h index 1bbe2a4cfe..9ef1e4f98b 100644 --- a/runtime/jit/jit_code_cache.h +++ b/runtime/jit/jit_code_cache.h @@ -431,7 +431,7 @@ class JitCodeCache { // Remove CHA dependents and underlying allocations for entries in `method_headers`. void FreeAllMethodHeaders(const std::unordered_set<OatQuickMethodHeader*>& method_headers) REQUIRES_SHARED(Locks::mutator_lock_) - REQUIRES(!Locks::jit_lock_) + REQUIRES(Locks::jit_lock_) REQUIRES(!Locks::cha_lock_); // Removes method from the cache. The caller must ensure that all threads |