diff options
| author | 2018-06-19 09:45:05 -0700 | |
|---|---|---|
| committer | 2018-07-10 08:44:52 -0700 | |
| commit | 3e36a9c24f591097b4403fe77b1d426c03aeb56a (patch) | |
| tree | 64f9c8896038ada2f7a17bd7cc62c488027dd548 /runtime/jit/jit_code_cache.h | |
| parent | 25bf44622d6359c1d49c2a8a8b45938ff099f811 (diff) | |
Move back to jit code on trace removal
This changes the lock hierarchy so the lock checker is able to
correctly determine that we will not deadlock. This lets us replace
the jit code in the method when tracing is removed.
Test: ./test.py --host
Change-Id: I14dd4eb9814c73fa3639239bb56d91c8303cec60
Diffstat (limited to 'runtime/jit/jit_code_cache.h')
| -rw-r--r-- | runtime/jit/jit_code_cache.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/runtime/jit/jit_code_cache.h b/runtime/jit/jit_code_cache.h index 19de978cd4..ee6111a430 100644 --- a/runtime/jit/jit_code_cache.h +++ b/runtime/jit/jit_code_cache.h @@ -315,6 +315,11 @@ class JitCodeCache { REQUIRES(!lock_) REQUIRES_SHARED(Locks::mutator_lock_); + // Adds the given roots to the roots_data. Only a member for annotalysis. + void FillRootTable(uint8_t* roots_data, Handle<mirror::ObjectArray<mirror::Object>> roots) + REQUIRES(lock_) + REQUIRES_SHARED(Locks::mutator_lock_); + ProfilingInfo* AddProfilingInfoInternal(Thread* self, ArtMethod* method, const std::vector<uint32_t>& entries) @@ -391,7 +396,7 @@ class JitCodeCache { class JniStubData; // Lock for guarding allocations, collections, and the method_code_map_. - Mutex lock_; + Mutex lock_ BOTTOM_MUTEX_ACQUIRED_AFTER; // Condition to wait on during collection. ConditionVariable lock_cond_ GUARDED_BY(lock_); // Whether there is a code cache collection in progress. |