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