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