src/hotspot/share/runtime/mutexLocker.cpp
changeset 52581 d402a406bbc3
parent 52448 bc5c7f63dbae
child 52857 7e268f863ff0
equal deleted inserted replaced
52580:73f6a850a62f 52581:d402a406bbc3
    62 Mutex*   ExpandHeap_lock              = NULL;
    62 Mutex*   ExpandHeap_lock              = NULL;
    63 Mutex*   AdapterHandlerLibrary_lock   = NULL;
    63 Mutex*   AdapterHandlerLibrary_lock   = NULL;
    64 Mutex*   SignatureHandlerLibrary_lock = NULL;
    64 Mutex*   SignatureHandlerLibrary_lock = NULL;
    65 Mutex*   VtableStubs_lock             = NULL;
    65 Mutex*   VtableStubs_lock             = NULL;
    66 Mutex*   SymbolArena_lock             = NULL;
    66 Mutex*   SymbolArena_lock             = NULL;
    67 Mutex*   StringTable_lock             = NULL;
       
    68 Monitor* StringDedupQueue_lock        = NULL;
    67 Monitor* StringDedupQueue_lock        = NULL;
    69 Mutex*   StringDedupTable_lock        = NULL;
    68 Mutex*   StringDedupTable_lock        = NULL;
    70 Monitor* CodeCache_lock               = NULL;
    69 Monitor* CodeCache_lock               = NULL;
    71 Mutex*   MethodData_lock              = NULL;
    70 Mutex*   MethodData_lock              = NULL;
    72 Mutex*   TouchedMethodLog_lock        = NULL;
    71 Mutex*   TouchedMethodLog_lock        = NULL;
   146 #endif
   145 #endif
   147 Monitor* CodeHeapStateAnalytics_lock  = NULL;
   146 Monitor* CodeHeapStateAnalytics_lock  = NULL;
   148 
   147 
   149 Mutex*   MetaspaceExpand_lock         = NULL;
   148 Mutex*   MetaspaceExpand_lock         = NULL;
   150 Mutex*   ClassLoaderDataGraph_lock    = NULL;
   149 Mutex*   ClassLoaderDataGraph_lock    = NULL;
   151 Monitor* ThreadsSMRDelete_lock       = NULL;
   150 Monitor* ThreadsSMRDelete_lock        = NULL;
   152 Mutex*   SharedDecoder_lock           = NULL;
   151 Mutex*   SharedDecoder_lock           = NULL;
   153 Mutex*   DCmdFactory_lock             = NULL;
   152 Mutex*   DCmdFactory_lock             = NULL;
       
   153 #if INCLUDE_NMT
       
   154 Mutex*   NMTQuery_lock                = NULL;
       
   155 #endif
   154 
   156 
   155 #define MAX_NUM_MUTEX 128
   157 #define MAX_NUM_MUTEX 128
   156 static Monitor * _mutex_array[MAX_NUM_MUTEX];
   158 static Monitor * _mutex_array[MAX_NUM_MUTEX];
   157 static int _num_mutex;
   159 static int _num_mutex;
   158 
   160 
   253   def(VMStatistic_lock             , PaddedMutex  , leaf,        false, Monitor::_safepoint_check_always);
   255   def(VMStatistic_lock             , PaddedMutex  , leaf,        false, Monitor::_safepoint_check_always);
   254   def(ExpandHeap_lock              , PaddedMutex  , leaf,        true,  Monitor::_safepoint_check_always);     // Used during compilation by VM thread
   256   def(ExpandHeap_lock              , PaddedMutex  , leaf,        true,  Monitor::_safepoint_check_always);     // Used during compilation by VM thread
   255   def(JNIHandleBlockFreeList_lock  , PaddedMutex  , leaf-1,      true,  Monitor::_safepoint_check_never);      // handles are used by VM thread
   257   def(JNIHandleBlockFreeList_lock  , PaddedMutex  , leaf-1,      true,  Monitor::_safepoint_check_never);      // handles are used by VM thread
   256   def(SignatureHandlerLibrary_lock , PaddedMutex  , leaf,        false, Monitor::_safepoint_check_always);
   258   def(SignatureHandlerLibrary_lock , PaddedMutex  , leaf,        false, Monitor::_safepoint_check_always);
   257   def(SymbolArena_lock             , PaddedMutex  , leaf+2,      true,  Monitor::_safepoint_check_never);
   259   def(SymbolArena_lock             , PaddedMutex  , leaf+2,      true,  Monitor::_safepoint_check_never);
   258   def(StringTable_lock             , PaddedMutex  , leaf,        true,  Monitor::_safepoint_check_always);
       
   259   def(ProfilePrint_lock            , PaddedMutex  , leaf,        false, Monitor::_safepoint_check_always);     // serial profile printing
   260   def(ProfilePrint_lock            , PaddedMutex  , leaf,        false, Monitor::_safepoint_check_always);     // serial profile printing
   260   def(ExceptionCache_lock          , PaddedMutex  , leaf,        false, Monitor::_safepoint_check_always);     // serial profile printing
   261   def(ExceptionCache_lock          , PaddedMutex  , leaf,        false, Monitor::_safepoint_check_always);     // serial profile printing
   261   def(OsrList_lock                 , PaddedMutex  , leaf,        true,  Monitor::_safepoint_check_never);
   262   def(OsrList_lock                 , PaddedMutex  , leaf,        true,  Monitor::_safepoint_check_never);
   262   def(Debug1_lock                  , PaddedMutex  , leaf,        true,  Monitor::_safepoint_check_never);
   263   def(Debug1_lock                  , PaddedMutex  , leaf,        true,  Monitor::_safepoint_check_never);
   263 #ifndef PRODUCT
   264 #ifndef PRODUCT
   333 
   334 
   334   def(NMethodSweeperStats_lock     , PaddedMutex  , special,     true,  Monitor::_safepoint_check_sometimes);
   335   def(NMethodSweeperStats_lock     , PaddedMutex  , special,     true,  Monitor::_safepoint_check_sometimes);
   335   def(ThreadsSMRDelete_lock        , PaddedMonitor, special,     false, Monitor::_safepoint_check_never);
   336   def(ThreadsSMRDelete_lock        , PaddedMonitor, special,     false, Monitor::_safepoint_check_never);
   336   def(SharedDecoder_lock           , PaddedMutex  , native,      false, Monitor::_safepoint_check_never);
   337   def(SharedDecoder_lock           , PaddedMutex  , native,      false, Monitor::_safepoint_check_never);
   337   def(DCmdFactory_lock             , PaddedMutex  , leaf,        true,  Monitor::_safepoint_check_never);
   338   def(DCmdFactory_lock             , PaddedMutex  , leaf,        true,  Monitor::_safepoint_check_never);
       
   339 #if INCLUDE_NMT
       
   340   def(NMTQuery_lock                , PaddedMutex  , max_nonleaf, false, Monitor::_safepoint_check_always);
       
   341 #endif
   338 }
   342 }
   339 
   343 
   340 GCMutexLocker::GCMutexLocker(Monitor * mutex) {
   344 GCMutexLocker::GCMutexLocker(Monitor * mutex) {
   341   if (SafepointSynchronize::is_at_safepoint()) {
   345   if (SafepointSynchronize::is_at_safepoint()) {
   342     _locked = false;
   346     _locked = false;