src/hotspot/share/runtime/mutexLocker.cpp
changeset 58226 408c445d04e8
parent 57840 4863a802a7c1
child 58291 a013100f7a35
equal deleted inserted replaced
58225:4eebb9aadbe3 58226:408c445d04e8
    37 // Instead of using pointers to malloc()ed monitors and mutexes we should consider
    37 // Instead of using pointers to malloc()ed monitors and mutexes we should consider
    38 // eliminating the indirection and using instances instead.
    38 // eliminating the indirection and using instances instead.
    39 // Consider using GCC's __read_mostly.
    39 // Consider using GCC's __read_mostly.
    40 
    40 
    41 Mutex*   Patching_lock                = NULL;
    41 Mutex*   Patching_lock                = NULL;
       
    42 Mutex*   CompiledMethod_lock          = NULL;
    42 Monitor* SystemDictionary_lock        = NULL;
    43 Monitor* SystemDictionary_lock        = NULL;
    43 Mutex*   ProtectionDomainSet_lock     = NULL;
    44 Mutex*   ProtectionDomainSet_lock     = NULL;
    44 Mutex*   SharedDictionary_lock        = NULL;
    45 Mutex*   SharedDictionary_lock        = NULL;
    45 Mutex*   Module_lock                  = NULL;
    46 Mutex*   Module_lock                  = NULL;
    46 Mutex*   CompiledIC_lock              = NULL;
    47 Mutex*   CompiledIC_lock              = NULL;
    91 Monitor* InitCompleted_lock           = NULL;
    92 Monitor* InitCompleted_lock           = NULL;
    92 Monitor* BeforeExit_lock              = NULL;
    93 Monitor* BeforeExit_lock              = NULL;
    93 Monitor* Notify_lock                  = NULL;
    94 Monitor* Notify_lock                  = NULL;
    94 Mutex*   ProfilePrint_lock            = NULL;
    95 Mutex*   ProfilePrint_lock            = NULL;
    95 Mutex*   ExceptionCache_lock          = NULL;
    96 Mutex*   ExceptionCache_lock          = NULL;
    96 Mutex*   OsrList_lock                 = NULL;
       
    97 Mutex*   NMethodSweeperStats_lock     = NULL;
    97 Mutex*   NMethodSweeperStats_lock     = NULL;
    98 #ifndef PRODUCT
    98 #ifndef PRODUCT
    99 Mutex*   FullGCALot_lock              = NULL;
    99 Mutex*   FullGCALot_lock              = NULL;
   100 #endif
   100 #endif
   101 
   101 
   231 
   231 
   232   def(MetaspaceExpand_lock         , PaddedMutex  , leaf-1,      true,  Monitor::_safepoint_check_never);
   232   def(MetaspaceExpand_lock         , PaddedMutex  , leaf-1,      true,  Monitor::_safepoint_check_never);
   233   def(ClassLoaderDataGraph_lock    , PaddedMutex  , nonleaf,     true,  Monitor::_safepoint_check_always);
   233   def(ClassLoaderDataGraph_lock    , PaddedMutex  , nonleaf,     true,  Monitor::_safepoint_check_always);
   234 
   234 
   235   def(Patching_lock                , PaddedMutex  , special,     true,  Monitor::_safepoint_check_never);      // used for safepointing and code patching.
   235   def(Patching_lock                , PaddedMutex  , special,     true,  Monitor::_safepoint_check_never);      // used for safepointing and code patching.
       
   236   def(CompiledMethod_lock          , PaddedMutex  , special-1,   true,  Monitor::_safepoint_check_never);
   236   def(Service_lock                 , PaddedMonitor, special,     true,  Monitor::_safepoint_check_never);      // used for service thread operations
   237   def(Service_lock                 , PaddedMonitor, special,     true,  Monitor::_safepoint_check_never);      // used for service thread operations
   237   def(JmethodIdCreation_lock       , PaddedMutex  , leaf,        true,  Monitor::_safepoint_check_always); // used for creating jmethodIDs.
   238   def(JmethodIdCreation_lock       , PaddedMutex  , leaf,        true,  Monitor::_safepoint_check_always); // used for creating jmethodIDs.
   238 
   239 
   239   def(SystemDictionary_lock        , PaddedMonitor, leaf,        true,  Monitor::_safepoint_check_always);
   240   def(SystemDictionary_lock        , PaddedMonitor, leaf,        true,  Monitor::_safepoint_check_always);
   240   def(ProtectionDomainSet_lock     , PaddedMutex  , leaf-1,      true,  Monitor::_safepoint_check_never);
   241   def(ProtectionDomainSet_lock     , PaddedMutex  , leaf-1,      true,  Monitor::_safepoint_check_never);
   246   def(JNIHandleBlockFreeList_lock  , PaddedMutex  , leaf-1,      true,  Monitor::_safepoint_check_never);      // handles are used by VM thread
   247   def(JNIHandleBlockFreeList_lock  , PaddedMutex  , leaf-1,      true,  Monitor::_safepoint_check_never);      // handles are used by VM thread
   247   def(SignatureHandlerLibrary_lock , PaddedMutex  , leaf,        false, Monitor::_safepoint_check_always);
   248   def(SignatureHandlerLibrary_lock , PaddedMutex  , leaf,        false, Monitor::_safepoint_check_always);
   248   def(SymbolArena_lock             , PaddedMutex  , leaf+2,      true,  Monitor::_safepoint_check_never);
   249   def(SymbolArena_lock             , PaddedMutex  , leaf+2,      true,  Monitor::_safepoint_check_never);
   249   def(ProfilePrint_lock            , PaddedMutex  , leaf,        false, Monitor::_safepoint_check_always); // serial profile printing
   250   def(ProfilePrint_lock            , PaddedMutex  , leaf,        false, Monitor::_safepoint_check_always); // serial profile printing
   250   def(ExceptionCache_lock          , PaddedMutex  , leaf,        false, Monitor::_safepoint_check_always); // serial profile printing
   251   def(ExceptionCache_lock          , PaddedMutex  , leaf,        false, Monitor::_safepoint_check_always); // serial profile printing
   251   def(OsrList_lock                 , PaddedMutex  , leaf,        true,  Monitor::_safepoint_check_never);
       
   252   def(Debug1_lock                  , PaddedMutex  , leaf,        true,  Monitor::_safepoint_check_never);
   252   def(Debug1_lock                  , PaddedMutex  , leaf,        true,  Monitor::_safepoint_check_never);
   253 #ifndef PRODUCT
   253 #ifndef PRODUCT
   254   def(FullGCALot_lock              , PaddedMutex  , leaf,        false, Monitor::_safepoint_check_always); // a lock to make FullGCALot MT safe
   254   def(FullGCALot_lock              , PaddedMutex  , leaf,        false, Monitor::_safepoint_check_always); // a lock to make FullGCALot MT safe
   255 #endif
   255 #endif
   256   def(BeforeExit_lock              , PaddedMonitor, leaf,        true,  Monitor::_safepoint_check_always);
   256   def(BeforeExit_lock              , PaddedMonitor, leaf,        true,  Monitor::_safepoint_check_always);