19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
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 #ifdef TARGET_OS_FAMILY_linux
31 # include "os_linux.inline.hpp"
32 #endif
33 #ifdef TARGET_OS_FAMILY_solaris
34 # include "os_solaris.inline.hpp"
35 #endif
36 #ifdef TARGET_OS_FAMILY_windows
37 # include "os_windows.inline.hpp"
38 #endif
39
40 // Mutexes used in the VM.
41
42 extern Mutex* Patching_lock; // a lock used to guard code patching of compiled code
43 extern Monitor* SystemDictionary_lock; // a lock on the system dictonary
44 extern Mutex* PackageTable_lock; // a lock on the class loader package table
45 extern Mutex* CompiledIC_lock; // a lock used to guard compiled IC patching and access
46 extern Mutex* InlineCacheBuffer_lock; // a lock used to guard the InlineCacheBuffer
47 extern Mutex* VMStatistic_lock; // a lock used to guard statistics count increment
48 extern Mutex* JNIGlobalHandle_lock; // a lock on creating JNI global handles
49 extern Mutex* JNIHandleBlockFreeList_lock; // a lock on the JNI handle block free list
50 extern Mutex* JNICachedItableIndex_lock; // a lock on caching an itable index during JNI invoke
51 extern Mutex* JmethodIdCreation_lock; // a lock on creating JNI method identifiers
52 extern Mutex* JfieldIdCreation_lock; // a lock on creating JNI static field identifiers
53 extern Monitor* JNICritical_lock; // a lock used while entering and exiting JNI critical regions, allows GC to sometimes get in
54 extern Mutex* JvmtiThreadState_lock; // a lock on modification of JVMTI thread data
55 extern Monitor* JvmtiPendingEvent_lock; // a lock on the JVMTI pending events list
56 extern Monitor* Heap_lock; // a lock on the heap
57 extern Mutex* ExpandHeap_lock; // a lock on expanding the heap
58 extern Mutex* AdapterHandlerLibrary_lock; // a lock on the AdapterHandlerLibrary
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
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 #ifdef TARGET_OS_FAMILY_linux
31 # include "os_linux.inline.hpp"
32 #endif
33 #ifdef TARGET_OS_FAMILY_solaris
34 # include "os_solaris.inline.hpp"
35 #endif
36 #ifdef TARGET_OS_FAMILY_windows
37 # include "os_windows.inline.hpp"
38 #endif
39 #ifdef TARGET_OS_FAMILY_bsd
40 # include "os_bsd.inline.hpp"
41 #endif
42
43 // Mutexes used in the VM.
44
45 extern Mutex* Patching_lock; // a lock used to guard code patching of compiled code
46 extern Monitor* SystemDictionary_lock; // a lock on the system dictonary
47 extern Mutex* PackageTable_lock; // a lock on the class loader package table
48 extern Mutex* CompiledIC_lock; // a lock used to guard compiled IC patching and access
49 extern Mutex* InlineCacheBuffer_lock; // a lock used to guard the InlineCacheBuffer
50 extern Mutex* VMStatistic_lock; // a lock used to guard statistics count increment
51 extern Mutex* JNIGlobalHandle_lock; // a lock on creating JNI global handles
52 extern Mutex* JNIHandleBlockFreeList_lock; // a lock on the JNI handle block free list
53 extern Mutex* JNICachedItableIndex_lock; // a lock on caching an itable index during JNI invoke
54 extern Mutex* JmethodIdCreation_lock; // a lock on creating JNI method identifiers
55 extern Mutex* JfieldIdCreation_lock; // a lock on creating JNI static field identifiers
56 extern Monitor* JNICritical_lock; // a lock used while entering and exiting JNI critical regions, allows GC to sometimes get in
57 extern Mutex* JvmtiThreadState_lock; // a lock on modification of JVMTI thread data
58 extern Monitor* JvmtiPendingEvent_lock; // a lock on the JVMTI pending events list
59 extern Monitor* Heap_lock; // a lock on the heap
60 extern Mutex* ExpandHeap_lock; // a lock on expanding the heap
61 extern Mutex* AdapterHandlerLibrary_lock; // a lock on the AdapterHandlerLibrary
|