diff options
Diffstat (limited to 'runtime/base/locks.h')
-rw-r--r-- | runtime/base/locks.h | 7 |
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 |