< prev index next >

src/hotspot/share/runtime/mutexLocker.cpp

Print this page
rev 56655 : 8232616: JVMCI_lock fails to get initialized when cds is disabled
Reviewed-by:


 317   def(JfrThreadSampler_lock        , PaddedMonitor, leaf,        true,  _safepoint_check_never);
 318 #endif
 319 
 320 #ifndef SUPPORTS_NATIVE_CX8
 321   def(UnsafeJlong_lock             , PaddedMutex  , special,     false, _safepoint_check_never);
 322 #endif
 323 
 324   def(CodeHeapStateAnalytics_lock  , PaddedMutex  , leaf,        true,  _safepoint_check_never);
 325   def(NMethodSweeperStats_lock     , PaddedMutex  , special,     true,  _safepoint_check_never);
 326   def(ThreadsSMRDelete_lock        , PaddedMonitor, special,     true,  _safepoint_check_never);
 327   def(ThreadIdTableCreate_lock     , PaddedMutex  , leaf,        false, _safepoint_check_always);
 328   def(SharedDecoder_lock           , PaddedMutex  , native,      false, _safepoint_check_never);
 329   def(DCmdFactory_lock             , PaddedMutex  , leaf,        true,  _safepoint_check_never);
 330 #if INCLUDE_NMT
 331   def(NMTQuery_lock                , PaddedMutex  , max_nonleaf, false, _safepoint_check_always);
 332 #endif
 333 #if INCLUDE_CDS
 334 #if INCLUDE_JVMTI
 335   def(CDSClassFileStream_lock      , PaddedMutex  , max_nonleaf, false, _safepoint_check_always);
 336 #endif


 337 
 338 #if INCLUDE_JVMCI
 339   def(JVMCI_lock                   , PaddedMonitor, nonleaf+2,   true,  _safepoint_check_always);
 340 #endif
 341   def(DumpTimeTable_lock           , PaddedMutex  , leaf,        true,  _safepoint_check_never);
 342 #endif // INCLUDE_CDS
 343 }
 344 
 345 GCMutexLocker::GCMutexLocker(Mutex* mutex) {
 346   if (SafepointSynchronize::is_at_safepoint()) {
 347     _locked = false;
 348   } else {
 349     _mutex = mutex;
 350     _locked = true;
 351     _mutex->lock();
 352   }
 353 }
 354 
 355 // Print all mutexes/monitors that are currently owned by a thread; called
 356 // by fatal error handler.
 357 void print_owned_locks_on_error(outputStream* st) {
 358   st->print("VM Mutex/Monitor currently owned by a thread: ");
 359   bool none = true;
 360   for (int i = 0; i < _num_mutex; i++) {
 361      // see if it has an owner
 362      if (_mutex_array[i]->owner() != NULL) {


 317   def(JfrThreadSampler_lock        , PaddedMonitor, leaf,        true,  _safepoint_check_never);
 318 #endif
 319 
 320 #ifndef SUPPORTS_NATIVE_CX8
 321   def(UnsafeJlong_lock             , PaddedMutex  , special,     false, _safepoint_check_never);
 322 #endif
 323 
 324   def(CodeHeapStateAnalytics_lock  , PaddedMutex  , leaf,        true,  _safepoint_check_never);
 325   def(NMethodSweeperStats_lock     , PaddedMutex  , special,     true,  _safepoint_check_never);
 326   def(ThreadsSMRDelete_lock        , PaddedMonitor, special,     true,  _safepoint_check_never);
 327   def(ThreadIdTableCreate_lock     , PaddedMutex  , leaf,        false, _safepoint_check_always);
 328   def(SharedDecoder_lock           , PaddedMutex  , native,      false, _safepoint_check_never);
 329   def(DCmdFactory_lock             , PaddedMutex  , leaf,        true,  _safepoint_check_never);
 330 #if INCLUDE_NMT
 331   def(NMTQuery_lock                , PaddedMutex  , max_nonleaf, false, _safepoint_check_always);
 332 #endif
 333 #if INCLUDE_CDS
 334 #if INCLUDE_JVMTI
 335   def(CDSClassFileStream_lock      , PaddedMutex  , max_nonleaf, false, _safepoint_check_always);
 336 #endif
 337   def(DumpTimeTable_lock           , PaddedMutex  , leaf,        true,  _safepoint_check_never);
 338 #endif // INCLUDE_CDS
 339 
 340 #if INCLUDE_JVMCI
 341   def(JVMCI_lock                   , PaddedMonitor, nonleaf+2,   true,  _safepoint_check_always);
 342 #endif


 343 }
 344 
 345 GCMutexLocker::GCMutexLocker(Mutex* mutex) {
 346   if (SafepointSynchronize::is_at_safepoint()) {
 347     _locked = false;
 348   } else {
 349     _mutex = mutex;
 350     _locked = true;
 351     _mutex->lock();
 352   }
 353 }
 354 
 355 // Print all mutexes/monitors that are currently owned by a thread; called
 356 // by fatal error handler.
 357 void print_owned_locks_on_error(outputStream* st) {
 358   st->print("VM Mutex/Monitor currently owned by a thread: ");
 359   bool none = true;
 360   for (int i = 0; i < _num_mutex; i++) {
 361      // see if it has an owner
 362      if (_mutex_array[i]->owner() != NULL) {
< prev index next >