21 * questions.
22 *
23 */
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* PackageTable_lock; // a lock on the class loader package table
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* JNIGlobalHandle_lock; // a lock on creating JNI global handles
40 extern Mutex* JNIHandleBlockFreeList_lock; // a lock on the JNI handle block free list
41 extern Mutex* MemberNameTable_lock; // a lock on the MemberNameTable updates
42 extern Mutex* JmethodIdCreation_lock; // a lock on creating JNI method identifiers
43 extern Mutex* JfieldIdCreation_lock; // a lock on creating JNI static field identifiers
44 extern Monitor* JNICritical_lock; // a lock used while entering and exiting JNI critical regions, allows GC to sometimes get in
45 extern Mutex* JvmtiThreadState_lock; // a lock on modification of JVMTI thread data
46 extern Monitor* JvmtiPendingEvent_lock; // a lock on the JVMTI pending events list
47 extern Monitor* Heap_lock; // a lock on the heap
48 extern Mutex* ExpandHeap_lock; // a lock on expanding the heap
49 extern Mutex* AdapterHandlerLibrary_lock; // a lock on the AdapterHandlerLibrary
50 extern Mutex* SignatureHandlerLibrary_lock; // a lock on the SignatureHandlerLibrary
51 extern Mutex* VtableStubs_lock; // a lock on the VtableStubs
52 extern Mutex* SymbolTable_lock; // a lock on the symbol table
53 extern Mutex* StringTable_lock; // a lock on the interned string table
54 extern Monitor* StringDedupQueue_lock; // a lock on the string deduplication queue
55 extern Mutex* StringDedupTable_lock; // a lock on the string deduplication table
56 extern Mutex* CodeCache_lock; // a lock on the CodeCache, rank is special, use MutexLockerEx
57 extern Mutex* MethodData_lock; // a lock on installation of method data
58 extern Mutex* RetData_lock; // a lock on installation of RetData inside method data
59 extern Mutex* DerivedPointerTableGC_lock; // a lock to protect the derived pointer table
60 extern Monitor* VMOperationQueue_lock; // a lock on queue of vm_operations waiting to execute
61 extern Monitor* VMOperationRequest_lock; // a lock on Threads waiting for a vm_operation to terminate
|
21 * questions.
22 *
23 */
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* PackageTable_lock; // a lock on the class loader package table
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* JNIGlobalHandle_lock; // a lock on creating JNI global handles
40 extern Mutex* JNIHandleBlockFreeList_lock; // a lock on the JNI handle block free list
41 extern Mutex* JmethodIdCreation_lock; // a lock on creating JNI method identifiers
42 extern Mutex* JfieldIdCreation_lock; // a lock on creating JNI static field identifiers
43 extern Monitor* JNICritical_lock; // a lock used while entering and exiting JNI critical regions, allows GC to sometimes get in
44 extern Mutex* JvmtiThreadState_lock; // a lock on modification of JVMTI thread data
45 extern Monitor* JvmtiPendingEvent_lock; // a lock on the JVMTI pending events list
46 extern Monitor* Heap_lock; // a lock on the heap
47 extern Mutex* ExpandHeap_lock; // a lock on expanding the heap
48 extern Mutex* AdapterHandlerLibrary_lock; // a lock on the AdapterHandlerLibrary
49 extern Mutex* SignatureHandlerLibrary_lock; // a lock on the SignatureHandlerLibrary
50 extern Mutex* VtableStubs_lock; // a lock on the VtableStubs
51 extern Mutex* SymbolTable_lock; // a lock on the symbol table
52 extern Mutex* StringTable_lock; // a lock on the interned string table
53 extern Monitor* StringDedupQueue_lock; // a lock on the string deduplication queue
54 extern Mutex* StringDedupTable_lock; // a lock on the string deduplication table
55 extern Mutex* CodeCache_lock; // a lock on the CodeCache, rank is special, use MutexLockerEx
56 extern Mutex* MethodData_lock; // a lock on installation of method data
57 extern Mutex* RetData_lock; // a lock on installation of RetData inside method data
58 extern Mutex* DerivedPointerTableGC_lock; // a lock to protect the derived pointer table
59 extern Monitor* VMOperationQueue_lock; // a lock on queue of vm_operations waiting to execute
60 extern Monitor* VMOperationRequest_lock; // a lock on Threads waiting for a vm_operation to terminate
|