322 def(CompileThread_lock , PaddedMonitor, nonleaf+5, false, Monitor::_safepoint_check_always);
323 def(PeriodicTask_lock , PaddedMonitor, nonleaf+5, true, Monitor::_safepoint_check_sometimes);
324 def(RedefineClasses_lock , PaddedMonitor, nonleaf+5, true, Monitor::_safepoint_check_always);
325
326 if (WhiteBoxAPI) {
327 def(Compilation_lock , PaddedMonitor, leaf, false, Monitor::_safepoint_check_never);
328 }
329
330 #if INCLUDE_JFR
331 def(JfrMsg_lock , PaddedMonitor, leaf, true, Monitor::_safepoint_check_always);
332 def(JfrBuffer_lock , PaddedMutex , leaf, true, Monitor::_safepoint_check_never);
333 def(JfrStream_lock , PaddedMutex , leaf+1, true, Monitor::_safepoint_check_never); // ensure to rank lower than 'safepoint'
334 def(JfrStacktrace_lock , PaddedMutex , special, true, Monitor::_safepoint_check_sometimes);
335 def(JfrThreadSampler_lock , PaddedMonitor, leaf, true, Monitor::_safepoint_check_never);
336 #endif
337
338 #ifndef SUPPORTS_NATIVE_CX8
339 def(UnsafeJlong_lock , PaddedMutex , special, false, Monitor::_safepoint_check_never);
340 #endif
341
342 def(CodeHeapStateAnalytics_lock , PaddedMutex , leaf, true, Monitor::_safepoint_check_never);
343
344 def(NMethodSweeperStats_lock , PaddedMutex , special, true, Monitor::_safepoint_check_sometimes);
345 def(ThreadsSMRDelete_lock , PaddedMonitor, special, false, Monitor::_safepoint_check_never);
346 def(SharedDecoder_lock , PaddedMutex , native, false, Monitor::_safepoint_check_never);
347 def(DCmdFactory_lock , PaddedMutex , leaf, true, Monitor::_safepoint_check_never);
348 #if INCLUDE_NMT
349 def(NMTQuery_lock , PaddedMutex , max_nonleaf, false, Monitor::_safepoint_check_always);
350 #endif
351 #if INCLUDE_CDS && INCLUDE_JVMTI
352 def(CDSClassFileStream_lock , PaddedMutex , max_nonleaf, false, Monitor::_safepoint_check_always);
353 #endif
354 }
355
356 GCMutexLocker::GCMutexLocker(Monitor * mutex) {
357 if (SafepointSynchronize::is_at_safepoint()) {
358 _locked = false;
359 } else {
360 _mutex = mutex;
361 _locked = true;
362 _mutex->lock();
|
322 def(CompileThread_lock , PaddedMonitor, nonleaf+5, false, Monitor::_safepoint_check_always);
323 def(PeriodicTask_lock , PaddedMonitor, nonleaf+5, true, Monitor::_safepoint_check_sometimes);
324 def(RedefineClasses_lock , PaddedMonitor, nonleaf+5, true, Monitor::_safepoint_check_always);
325
326 if (WhiteBoxAPI) {
327 def(Compilation_lock , PaddedMonitor, leaf, false, Monitor::_safepoint_check_never);
328 }
329
330 #if INCLUDE_JFR
331 def(JfrMsg_lock , PaddedMonitor, leaf, true, Monitor::_safepoint_check_always);
332 def(JfrBuffer_lock , PaddedMutex , leaf, true, Monitor::_safepoint_check_never);
333 def(JfrStream_lock , PaddedMutex , leaf+1, true, Monitor::_safepoint_check_never); // ensure to rank lower than 'safepoint'
334 def(JfrStacktrace_lock , PaddedMutex , special, true, Monitor::_safepoint_check_sometimes);
335 def(JfrThreadSampler_lock , PaddedMonitor, leaf, true, Monitor::_safepoint_check_never);
336 #endif
337
338 #ifndef SUPPORTS_NATIVE_CX8
339 def(UnsafeJlong_lock , PaddedMutex , special, false, Monitor::_safepoint_check_never);
340 #endif
341
342 def(CodeHeapStateAnalytics_lock , PaddedMutex , nonleaf+6, true, Monitor::_safepoint_check_never);
343
344 def(NMethodSweeperStats_lock , PaddedMutex , special, true, Monitor::_safepoint_check_sometimes);
345 def(ThreadsSMRDelete_lock , PaddedMonitor, special, false, Monitor::_safepoint_check_never);
346 def(SharedDecoder_lock , PaddedMutex , native, false, Monitor::_safepoint_check_never);
347 def(DCmdFactory_lock , PaddedMutex , leaf, true, Monitor::_safepoint_check_never);
348 #if INCLUDE_NMT
349 def(NMTQuery_lock , PaddedMutex , max_nonleaf, false, Monitor::_safepoint_check_always);
350 #endif
351 #if INCLUDE_CDS && INCLUDE_JVMTI
352 def(CDSClassFileStream_lock , PaddedMutex , max_nonleaf, false, Monitor::_safepoint_check_always);
353 #endif
354 }
355
356 GCMutexLocker::GCMutexLocker(Monitor * mutex) {
357 if (SafepointSynchronize::is_at_safepoint()) {
358 _locked = false;
359 } else {
360 _mutex = mutex;
361 _locked = true;
362 _mutex->lock();
|