105
106 #ifndef PRODUCT
107 extern Mutex* FullGCALot_lock; // a lock to make FullGCALot MT safe
108 #endif // PRODUCT
109 extern Mutex* Debug1_lock; // A bunch of pre-allocated locks that can be used for tracing
110 extern Mutex* Debug2_lock; // down synchronization related bugs!
111 extern Mutex* Debug3_lock;
112
113 extern Mutex* RawMonitor_lock;
114 extern Mutex* PerfDataMemAlloc_lock; // a lock on the allocator for PerfData memory for performance data
115 extern Mutex* PerfDataManager_lock; // a long on access to PerfDataManager resources
116 extern Mutex* ParkerFreeList_lock;
117 extern Mutex* OopMapCacheAlloc_lock; // protects allocation of oop_map caches
118
119 extern Mutex* FreeList_lock; // protects the free region list during safepoints
120 extern Monitor* SecondaryFreeList_lock; // protects the secondary free region list
121 extern Mutex* OldSets_lock; // protects the old region sets
122 extern Monitor* RootRegionScan_lock; // used to notify that the CM threads have finished scanning the IM snapshot regions
123 extern Mutex* MMUTracker_lock; // protects the MMU
124 // tracker data structures
125 extern Mutex* HotCardCache_lock; // protects the hot card cache
126
127 extern Mutex* Management_lock; // a lock used to serialize JVM management
128 extern Monitor* Service_lock; // a lock used for service thread operation
129 extern Monitor* PeriodicTask_lock; // protects the periodic task structure
130
131 #ifdef INCLUDE_TRACE
132 extern Mutex* JfrStacktrace_lock; // used to guard access to the JFR stacktrace table
133 extern Monitor* JfrMsg_lock; // protects JFR messaging
134 extern Mutex* JfrBuffer_lock; // protects JFR buffer operations
135 extern Mutex* JfrStream_lock; // protects JFR stream access
136 extern Mutex* JfrThreadGroups_lock; // protects JFR access to Thread Groups
137 #endif
138
139 #ifndef SUPPORTS_NATIVE_CX8
140 extern Mutex* UnsafeJlong_lock; // provides Unsafe atomic updates to jlongs on platforms that don't support cx8
141 #endif
142
143 // A MutexLocker provides mutual exclusion with respect to a given mutex
144 // for the scope which contains the locker. The lock is an OS lock, not
145 // an object lock, and the two do not interoperate. Do not use Mutex-based
|
105
106 #ifndef PRODUCT
107 extern Mutex* FullGCALot_lock; // a lock to make FullGCALot MT safe
108 #endif // PRODUCT
109 extern Mutex* Debug1_lock; // A bunch of pre-allocated locks that can be used for tracing
110 extern Mutex* Debug2_lock; // down synchronization related bugs!
111 extern Mutex* Debug3_lock;
112
113 extern Mutex* RawMonitor_lock;
114 extern Mutex* PerfDataMemAlloc_lock; // a lock on the allocator for PerfData memory for performance data
115 extern Mutex* PerfDataManager_lock; // a long on access to PerfDataManager resources
116 extern Mutex* ParkerFreeList_lock;
117 extern Mutex* OopMapCacheAlloc_lock; // protects allocation of oop_map caches
118
119 extern Mutex* FreeList_lock; // protects the free region list during safepoints
120 extern Monitor* SecondaryFreeList_lock; // protects the secondary free region list
121 extern Mutex* OldSets_lock; // protects the old region sets
122 extern Monitor* RootRegionScan_lock; // used to notify that the CM threads have finished scanning the IM snapshot regions
123 extern Mutex* MMUTracker_lock; // protects the MMU
124 // tracker data structures
125
126 extern Mutex* Management_lock; // a lock used to serialize JVM management
127 extern Monitor* Service_lock; // a lock used for service thread operation
128 extern Monitor* PeriodicTask_lock; // protects the periodic task structure
129
130 #ifdef 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
|