< prev index next >

src/hotspot/share/runtime/mutexLocker.cpp

Print this page
rev 54099 : 8219586: CodeHeap State Analytics processes dead nmethods
Reviewed-by: thartmann, eosterlund


 312   def(PeriodicTask_lock            , PaddedMonitor, nonleaf+5,   true,  Monitor::_safepoint_check_sometimes);
 313   def(RedefineClasses_lock         , PaddedMonitor, nonleaf+5,   true,  Monitor::_safepoint_check_always);
 314 
 315   def(ThreadHeapSampler_lock       , PaddedMutex,   nonleaf,     false, Monitor::_safepoint_check_never);
 316 
 317   if (WhiteBoxAPI) {
 318     def(Compilation_lock           , PaddedMonitor, leaf,        false, Monitor::_safepoint_check_never);
 319   }
 320 
 321 #if INCLUDE_JFR
 322   def(JfrMsg_lock                  , PaddedMonitor, leaf,        true,  Monitor::_safepoint_check_always);
 323   def(JfrBuffer_lock               , PaddedMutex  , leaf,        true,  Monitor::_safepoint_check_never);
 324   def(JfrStream_lock               , PaddedMutex  , leaf+1,      true,  Monitor::_safepoint_check_never);      // ensure to rank lower than 'safepoint'
 325   def(JfrStacktrace_lock           , PaddedMutex  , special,     true,  Monitor::_safepoint_check_sometimes);
 326 #endif
 327 
 328 #ifndef SUPPORTS_NATIVE_CX8
 329   def(UnsafeJlong_lock             , PaddedMutex  , special,     false, Monitor::_safepoint_check_never);
 330 #endif
 331 
 332   def(CodeHeapStateAnalytics_lock  , PaddedMutex  , leaf,        true,  Monitor::_safepoint_check_never);
 333   def(ThreadIdTableCreate_lock     , PaddedMutex  , leaf,        false, Monitor::_safepoint_check_always);
 334 }
 335 
 336 GCMutexLocker::GCMutexLocker(Monitor * mutex) {
 337   if (SafepointSynchronize::is_at_safepoint()) {
 338     _locked = false;
 339   } else {
 340     _mutex = mutex;
 341     _locked = true;
 342     _mutex->lock();
 343   }
 344 }
 345 
 346 // Print all mutexes/monitors that are currently owned by a thread; called
 347 // by fatal error handler.
 348 void print_owned_locks_on_error(outputStream* st) {
 349   st->print("VM Mutex/Monitor currently owned by a thread: ");
 350   bool none = true;
 351   for (int i = 0; i < _num_mutex; i++) {
 352      // see if it has an owner


 312   def(PeriodicTask_lock            , PaddedMonitor, nonleaf+5,   true,  Monitor::_safepoint_check_sometimes);
 313   def(RedefineClasses_lock         , PaddedMonitor, nonleaf+5,   true,  Monitor::_safepoint_check_always);
 314 
 315   def(ThreadHeapSampler_lock       , PaddedMutex,   nonleaf,     false, Monitor::_safepoint_check_never);
 316 
 317   if (WhiteBoxAPI) {
 318     def(Compilation_lock           , PaddedMonitor, leaf,        false, Monitor::_safepoint_check_never);
 319   }
 320 
 321 #if INCLUDE_JFR
 322   def(JfrMsg_lock                  , PaddedMonitor, leaf,        true,  Monitor::_safepoint_check_always);
 323   def(JfrBuffer_lock               , PaddedMutex  , leaf,        true,  Monitor::_safepoint_check_never);
 324   def(JfrStream_lock               , PaddedMutex  , leaf+1,      true,  Monitor::_safepoint_check_never);      // ensure to rank lower than 'safepoint'
 325   def(JfrStacktrace_lock           , PaddedMutex  , special,     true,  Monitor::_safepoint_check_sometimes);
 326 #endif
 327 
 328 #ifndef SUPPORTS_NATIVE_CX8
 329   def(UnsafeJlong_lock             , PaddedMutex  , special,     false, Monitor::_safepoint_check_never);
 330 #endif
 331 
 332   def(CodeHeapStateAnalytics_lock  , PaddedMutex  , nonleaf+6,   false, Monitor::_safepoint_check_always);
 333   def(ThreadIdTableCreate_lock     , PaddedMutex  , leaf,        false, Monitor::_safepoint_check_always);
 334 }
 335 
 336 GCMutexLocker::GCMutexLocker(Monitor * mutex) {
 337   if (SafepointSynchronize::is_at_safepoint()) {
 338     _locked = false;
 339   } else {
 340     _mutex = mutex;
 341     _locked = true;
 342     _mutex->lock();
 343   }
 344 }
 345 
 346 // Print all mutexes/monitors that are currently owned by a thread; called
 347 // by fatal error handler.
 348 void print_owned_locks_on_error(outputStream* st) {
 349   st->print("VM Mutex/Monitor currently owned by a thread: ");
 350   bool none = true;
 351   for (int i = 0; i < _num_mutex; i++) {
 352      // see if it has an owner
< prev index next >