summaryrefslogtreecommitdiff
path: root/runtime/base/locks.h
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/base/locks.h')
-rw-r--r--runtime/base/locks.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/runtime/base/locks.h b/runtime/base/locks.h
index 77e304debd..4b85df0ea6 100644
--- a/runtime/base/locks.h
+++ b/runtime/base/locks.h
@@ -45,6 +45,7 @@ enum LockLevel : uint8_t {
kUnexpectedSignalLock,
kThreadSuspendCountLock,
kAbortLock,
+ kJniIdLock,
kNativeDebugInterfaceLock,
kSignalHandlingLock,
// A generic lock level for mutexs that should not allow any additional mutexes to be gained after
@@ -353,8 +354,12 @@ class Locks {
// Guards the magic global variables used by native tools (e.g. libunwind).
static Mutex* native_debug_interface_lock_ ACQUIRED_AFTER(unexpected_signal_lock_);
+ // Guards the data structures responsible for keeping track of the JNI
+ // jmethodID/jfieldID <-> ArtMethod/ArtField mapping when using index-ids.
+ static ReaderWriterMutex* jni_id_lock_ ACQUIRED_AFTER(native_debug_interface_lock_);
+
// Have an exclusive logging thread.
- static Mutex* logging_lock_ ACQUIRED_AFTER(native_debug_interface_lock_);
+ static Mutex* logging_lock_ ACQUIRED_AFTER(jni_id_lock_);
// List of mutexes that we expect a thread may hold when accessing weak refs. This is used to
// avoid a deadlock in the empty checkpoint while weak ref access is disabled (b/34964016). If we