summaryrefslogtreecommitdiff
path: root/runtime/jit/jit_code_cache.h
diff options
context:
space:
mode:
author Alex Light <allight@google.com> 2018-06-19 09:45:05 -0700
committer Alex Light <allight@google.com> 2018-07-10 08:44:52 -0700
commit3e36a9c24f591097b4403fe77b1d426c03aeb56a (patch)
tree64f9c8896038ada2f7a17bd7cc62c488027dd548 /runtime/jit/jit_code_cache.h
parent25bf44622d6359c1d49c2a8a8b45938ff099f811 (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.h7
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.