24 25 #ifndef SHARE_VM_RUNTIME_MUTEXLOCKER_HPP 26 #define SHARE_VM_RUNTIME_MUTEXLOCKER_HPP 27 28 #include "memory/allocation.hpp" 29 #include "runtime/mutex.hpp" 30 31 // Mutexes used in the VM. 32 33 extern Mutex* Patching_lock; // a lock used to guard code patching of compiled code 34 extern Monitor* SystemDictionary_lock; // a lock on the system dictionary 35 extern Mutex* Module_lock; // a lock on module and package related data structures 36 extern Mutex* CompiledIC_lock; // a lock used to guard compiled IC patching and access 37 extern Mutex* InlineCacheBuffer_lock; // a lock used to guard the InlineCacheBuffer 38 extern Mutex* VMStatistic_lock; // a lock used to guard statistics count increment 39 extern Mutex* JNIGlobalAlloc_lock; // JNI global storage allocate list lock 40 extern Mutex* JNIGlobalActive_lock; // JNI global storage active list lock 41 extern Mutex* JNIWeakAlloc_lock; // JNI weak storage allocate list lock 42 extern Mutex* JNIWeakActive_lock; // JNI weak storage active list lock 43 extern Mutex* JNIHandleBlockFreeList_lock; // a lock on the JNI handle block free list 44 extern Mutex* ResolvedMethodTable_lock; // a lock on the ResolvedMethodTable updates 45 extern Mutex* JmethodIdCreation_lock; // a lock on creating JNI method identifiers 46 extern Mutex* JfieldIdCreation_lock; // a lock on creating JNI static field identifiers 47 extern Monitor* JNICritical_lock; // a lock used while entering and exiting JNI critical regions, allows GC to sometimes get in 48 extern Mutex* JvmtiThreadState_lock; // a lock on modification of JVMTI thread data 49 extern Monitor* Heap_lock; // a lock on the heap 50 extern Mutex* ExpandHeap_lock; // a lock on expanding the heap 51 extern Mutex* AdapterHandlerLibrary_lock; // a lock on the AdapterHandlerLibrary 52 extern Mutex* SignatureHandlerLibrary_lock; // a lock on the SignatureHandlerLibrary 53 extern Mutex* VtableStubs_lock; // a lock on the VtableStubs 54 extern Mutex* SymbolTable_lock; // a lock on the symbol table 55 extern Mutex* StringTable_lock; // a lock on the interned string table 56 extern Monitor* StringDedupQueue_lock; // a lock on the string deduplication queue 57 extern Mutex* StringDedupTable_lock; // a lock on the string deduplication table 58 extern Monitor* CodeCache_lock; // a lock on the CodeCache, rank is special, use MutexLockerEx 59 extern Mutex* MethodData_lock; // a lock on installation of method data 60 extern Mutex* TouchedMethodLog_lock; // a lock on allocation of LogExecutedMethods info 61 extern Mutex* RetData_lock; // a lock on installation of RetData inside method data 62 extern Mutex* DerivedPointerTableGC_lock; // a lock to protect the derived pointer table 63 extern Monitor* CGCPhaseManager_lock; // a lock to protect a concurrent GC's phase management | 24 25 #ifndef SHARE_VM_RUNTIME_MUTEXLOCKER_HPP 26 #define SHARE_VM_RUNTIME_MUTEXLOCKER_HPP 27 28 #include "memory/allocation.hpp" 29 #include "runtime/mutex.hpp" 30 31 // Mutexes used in the VM. 32 33 extern Mutex* Patching_lock; // a lock used to guard code patching of compiled code 34 extern Monitor* SystemDictionary_lock; // a lock on the system dictionary 35 extern Mutex* Module_lock; // a lock on module and package related data structures 36 extern Mutex* CompiledIC_lock; // a lock used to guard compiled IC patching and access 37 extern Mutex* InlineCacheBuffer_lock; // a lock used to guard the InlineCacheBuffer 38 extern Mutex* VMStatistic_lock; // a lock used to guard statistics count increment 39 extern Mutex* JNIGlobalAlloc_lock; // JNI global storage allocate list lock 40 extern Mutex* JNIGlobalActive_lock; // JNI global storage active list lock 41 extern Mutex* JNIWeakAlloc_lock; // JNI weak storage allocate list lock 42 extern Mutex* JNIWeakActive_lock; // JNI weak storage active list lock 43 extern Mutex* JNIHandleBlockFreeList_lock; // a lock on the JNI handle block free list 44 extern Mutex* VMWeakAlloc_lock; // VM Weak Handles storage allocate list lock 45 extern Mutex* VMWeakActive_lock; // VM Weak Handles storage active list lock 46 extern Mutex* ResolvedMethodTable_lock; // a lock on the ResolvedMethodTable updates 47 extern Mutex* JmethodIdCreation_lock; // a lock on creating JNI method identifiers 48 extern Mutex* JfieldIdCreation_lock; // a lock on creating JNI static field identifiers 49 extern Monitor* JNICritical_lock; // a lock used while entering and exiting JNI critical regions, allows GC to sometimes get in 50 extern Mutex* JvmtiThreadState_lock; // a lock on modification of JVMTI thread data 51 extern Monitor* Heap_lock; // a lock on the heap 52 extern Mutex* ExpandHeap_lock; // a lock on expanding the heap 53 extern Mutex* AdapterHandlerLibrary_lock; // a lock on the AdapterHandlerLibrary 54 extern Mutex* SignatureHandlerLibrary_lock; // a lock on the SignatureHandlerLibrary 55 extern Mutex* VtableStubs_lock; // a lock on the VtableStubs 56 extern Mutex* SymbolTable_lock; // a lock on the symbol table 57 extern Mutex* StringTable_lock; // a lock on the interned string table 58 extern Monitor* StringDedupQueue_lock; // a lock on the string deduplication queue 59 extern Mutex* StringDedupTable_lock; // a lock on the string deduplication table 60 extern Monitor* CodeCache_lock; // a lock on the CodeCache, rank is special, use MutexLockerEx 61 extern Mutex* MethodData_lock; // a lock on installation of method data 62 extern Mutex* TouchedMethodLog_lock; // a lock on allocation of LogExecutedMethods info 63 extern Mutex* RetData_lock; // a lock on installation of RetData inside method data 64 extern Mutex* DerivedPointerTableGC_lock; // a lock to protect the derived pointer table 65 extern Monitor* CGCPhaseManager_lock; // a lock to protect a concurrent GC's phase management |