107 extern Mutex* Debug3_lock;
108
109 extern Mutex* RawMonitor_lock;
110 extern Mutex* PerfDataMemAlloc_lock; // a lock on the allocator for PerfData memory for performance data
111 extern Mutex* PerfDataManager_lock; // a long on access to PerfDataManager resources
112 extern Mutex* ParkerFreeList_lock;
113 extern Mutex* OopMapCacheAlloc_lock; // protects allocation of oop_map caches
114
115 extern Mutex* FreeList_lock; // protects the free region list during safepoints
116 extern Monitor* SecondaryFreeList_lock; // protects the secondary free region list
117 extern Mutex* OldSets_lock; // protects the old region sets
118 extern Monitor* RootRegionScan_lock; // used to notify that the CM threads have finished scanning the IM snapshot regions
119 extern Mutex* MMUTracker_lock; // protects the MMU
120 // tracker data structures
121
122 extern Mutex* Management_lock; // a lock used to serialize JVM management
123 extern Monitor* Service_lock; // a lock used for service thread operation
124 extern Monitor* PeriodicTask_lock; // protects the periodic task structure
125 extern Monitor* RedefineClasses_lock; // locks classes from parallel redefinition
126
127 #ifdef INCLUDE_TRACE
128 extern Mutex* JfrStacktrace_lock; // used to guard access to the JFR stacktrace table
129 extern Monitor* JfrMsg_lock; // protects JFR messaging
130 extern Mutex* JfrBuffer_lock; // protects JFR buffer operations
131 extern Mutex* JfrStream_lock; // protects JFR stream access
132 extern Mutex* JfrThreadGroups_lock; // protects JFR access to Thread Groups
133 #endif
134
135 #ifndef SUPPORTS_NATIVE_CX8
136 extern Mutex* UnsafeJlong_lock; // provides Unsafe atomic updates to jlongs on platforms that don't support cx8
137 #endif
138
139 // A MutexLocker provides mutual exclusion with respect to a given mutex
140 // for the scope which contains the locker. The lock is an OS lock, not
141 // an object lock, and the two do not interoperate. Do not use Mutex-based
142 // locks to lock on Java objects, because they will not be respected if a
143 // that object is locked using the Java locking mechanism.
144 //
145 // NOTE WELL!!
146 //
147 // See orderAccess.hpp. We assume throughout the VM that MutexLocker's
|
107 extern Mutex* Debug3_lock;
108
109 extern Mutex* RawMonitor_lock;
110 extern Mutex* PerfDataMemAlloc_lock; // a lock on the allocator for PerfData memory for performance data
111 extern Mutex* PerfDataManager_lock; // a long on access to PerfDataManager resources
112 extern Mutex* ParkerFreeList_lock;
113 extern Mutex* OopMapCacheAlloc_lock; // protects allocation of oop_map caches
114
115 extern Mutex* FreeList_lock; // protects the free region list during safepoints
116 extern Monitor* SecondaryFreeList_lock; // protects the secondary free region list
117 extern Mutex* OldSets_lock; // protects the old region sets
118 extern Monitor* RootRegionScan_lock; // used to notify that the CM threads have finished scanning the IM snapshot regions
119 extern Mutex* MMUTracker_lock; // protects the MMU
120 // tracker data structures
121
122 extern Mutex* Management_lock; // a lock used to serialize JVM management
123 extern Monitor* Service_lock; // a lock used for service thread operation
124 extern Monitor* PeriodicTask_lock; // protects the periodic task structure
125 extern Monitor* RedefineClasses_lock; // locks classes from parallel redefinition
126
127 #if INCLUDE_TRACE
128 extern Mutex* JfrStacktrace_lock; // used to guard access to the JFR stacktrace table
129 extern Monitor* JfrMsg_lock; // protects JFR messaging
130 extern Mutex* JfrBuffer_lock; // protects JFR buffer operations
131 extern Mutex* JfrStream_lock; // protects JFR stream access
132 extern Mutex* JfrThreadGroups_lock; // protects JFR access to Thread Groups
133 #endif
134
135 #ifndef SUPPORTS_NATIVE_CX8
136 extern Mutex* UnsafeJlong_lock; // provides Unsafe atomic updates to jlongs on platforms that don't support cx8
137 #endif
138
139 // A MutexLocker provides mutual exclusion with respect to a given mutex
140 // for the scope which contains the locker. The lock is an OS lock, not
141 // an object lock, and the two do not interoperate. Do not use Mutex-based
142 // locks to lock on Java objects, because they will not be respected if a
143 // that object is locked using the Java locking mechanism.
144 //
145 // NOTE WELL!!
146 //
147 // See orderAccess.hpp. We assume throughout the VM that MutexLocker's
|