< prev index next >

src/hotspot/share/runtime/mutexLocker.cpp


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 }
< prev index next >