< prev index next >

src/share/vm/runtime/mutexLocker.cpp

Print this page




  36 // set at JVM startup-time, they should never be subsequently mutated.
  37 // Instead of using pointers to malloc()ed monitors and mutexes we should consider
  38 // eliminating the indirection and using instances instead.
  39 // Consider using GCC's __read_mostly.
  40 
  41 Mutex*   Patching_lock                = NULL;
  42 Monitor* SystemDictionary_lock        = NULL;
  43 Mutex*   PackageTable_lock            = NULL;
  44 Mutex*   CompiledIC_lock              = NULL;
  45 Mutex*   InlineCacheBuffer_lock       = NULL;
  46 Mutex*   VMStatistic_lock             = NULL;
  47 Mutex*   JNIGlobalHandle_lock         = NULL;
  48 Mutex*   JNIHandleBlockFreeList_lock  = NULL;
  49 Mutex*   MemberNameTable_lock         = NULL;
  50 Mutex*   JmethodIdCreation_lock       = NULL;
  51 Mutex*   JfieldIdCreation_lock        = NULL;
  52 Monitor* JNICritical_lock             = NULL;
  53 Mutex*   JvmtiThreadState_lock        = NULL;
  54 Monitor* JvmtiPendingEvent_lock       = NULL;
  55 Monitor* Heap_lock                    = NULL;



  56 Mutex*   ExpandHeap_lock              = NULL;
  57 Mutex*   AdapterHandlerLibrary_lock   = NULL;
  58 Mutex*   SignatureHandlerLibrary_lock = NULL;
  59 Mutex*   VtableStubs_lock             = NULL;
  60 Mutex*   SymbolTable_lock             = NULL;
  61 Mutex*   StringTable_lock             = NULL;
  62 Monitor* StringDedupQueue_lock        = NULL;
  63 Mutex*   StringDedupTable_lock        = NULL;
  64 Monitor* CodeCache_lock               = NULL;
  65 Mutex*   MethodData_lock              = NULL;
  66 Mutex*   TouchedMethodLog_lock        = NULL;
  67 Mutex*   RetData_lock                 = NULL;
  68 Monitor* VMOperationQueue_lock        = NULL;
  69 Monitor* VMOperationRequest_lock      = NULL;
  70 Monitor* Safepoint_lock               = NULL;
  71 Monitor* SerializePage_lock           = NULL;
  72 Monitor* Threads_lock                 = NULL;
  73 Monitor* CGC_lock                     = NULL;
  74 Monitor* STS_lock                     = NULL;
  75 Monitor* SLT_lock                     = NULL;


  83 Monitor* DirtyCardQ_CBL_mon           = NULL;
  84 Mutex*   Shared_DirtyCardQ_lock       = NULL;
  85 Mutex*   ParGCRareEvent_lock          = NULL;
  86 Mutex*   DerivedPointerTableGC_lock   = NULL;
  87 Mutex*   Compile_lock                 = NULL;
  88 Monitor* MethodCompileQueue_lock      = NULL;
  89 Monitor* CompileThread_lock           = NULL;
  90 Monitor* Compilation_lock             = NULL;
  91 Mutex*   CompileTaskAlloc_lock        = NULL;
  92 Mutex*   CompileStatistics_lock       = NULL;
  93 Mutex*   MultiArray_lock              = NULL;
  94 Monitor* Terminator_lock              = NULL;
  95 Monitor* BeforeExit_lock              = NULL;
  96 Monitor* Notify_lock                  = NULL;
  97 Monitor* Interrupt_lock               = NULL;
  98 Monitor* ProfileVM_lock               = NULL;
  99 Mutex*   ProfilePrint_lock            = NULL;
 100 Mutex*   ExceptionCache_lock          = NULL;
 101 Monitor* ObjAllocPost_lock            = NULL;
 102 Mutex*   OsrList_lock                 = NULL;

 103 
 104 #ifndef PRODUCT
 105 Mutex*   FullGCALot_lock              = NULL;
 106 #endif
 107 
 108 Mutex*   Debug1_lock                  = NULL;
 109 Mutex*   Debug2_lock                  = NULL;
 110 Mutex*   Debug3_lock                  = NULL;
 111 
 112 Mutex*   tty_lock                     = NULL;
 113 
 114 Mutex*   RawMonitor_lock              = NULL;
 115 Mutex*   PerfDataMemAlloc_lock        = NULL;
 116 Mutex*   PerfDataManager_lock         = NULL;
 117 Mutex*   OopMapCacheAlloc_lock        = NULL;
 118 
 119 Mutex*   FreeList_lock                = NULL;
 120 Monitor* SecondaryFreeList_lock       = NULL;
 121 Mutex*   OldSets_lock                 = NULL;
 122 Monitor* RootRegionScan_lock          = NULL;


 186 
 187     def(CMark_lock                 , Monitor, nonleaf,     true,  Monitor::_safepoint_check_never);      // coordinate concurrent mark thread
 188     def(CMRegionStack_lock         , Mutex,   leaf,        true,  Monitor::_safepoint_check_never);
 189     def(SATB_Q_FL_lock             , Mutex  , special,     true,  Monitor::_safepoint_check_never);
 190     def(SATB_Q_CBL_mon             , Monitor, nonleaf,     true,  Monitor::_safepoint_check_never);
 191     def(Shared_SATB_Q_lock         , Mutex,   nonleaf,     true,  Monitor::_safepoint_check_never);
 192 
 193     def(DirtyCardQ_FL_lock         , Mutex  , special,     true,  Monitor::_safepoint_check_never);
 194     def(DirtyCardQ_CBL_mon         , Monitor, nonleaf,     true,  Monitor::_safepoint_check_never);
 195     def(Shared_DirtyCardQ_lock     , Mutex,   nonleaf,     true,  Monitor::_safepoint_check_never);
 196 
 197     def(FreeList_lock              , Mutex,   leaf     ,   true,  Monitor::_safepoint_check_never);
 198     def(SecondaryFreeList_lock     , Monitor, leaf     ,   true,  Monitor::_safepoint_check_never);
 199     def(OldSets_lock               , Mutex  , leaf     ,   true,  Monitor::_safepoint_check_never);
 200     def(RootRegionScan_lock        , Monitor, leaf     ,   true,  Monitor::_safepoint_check_never);
 201     def(MMUTracker_lock            , Mutex  , leaf     ,   true,  Monitor::_safepoint_check_never);
 202 
 203     def(StringDedupQueue_lock      , Monitor, leaf,        true,  Monitor::_safepoint_check_never);
 204     def(StringDedupTable_lock      , Mutex  , leaf,        true,  Monitor::_safepoint_check_never);
 205   }








 206   def(ParGCRareEvent_lock          , Mutex  , leaf     ,   true,  Monitor::_safepoint_check_sometimes);
 207   def(DerivedPointerTableGC_lock   , Mutex,   leaf,        true,  Monitor::_safepoint_check_never);
 208   def(CodeCache_lock               , Mutex  , special,     true,  Monitor::_safepoint_check_never);
 209   def(Interrupt_lock               , Monitor, special,     true,  Monitor::_safepoint_check_never);      // used for interrupt processing
 210   def(RawMonitor_lock              , Mutex,   special,     true,  Monitor::_safepoint_check_never);
 211   def(OopMapCacheAlloc_lock        , Mutex,   leaf,        true,  Monitor::_safepoint_check_always);     // used for oop_map_cache allocation.
 212 
 213   def(Patching_lock                , Mutex  , special,     true,  Monitor::_safepoint_check_never);      // used for safepointing and code patching.
 214   def(ObjAllocPost_lock            , Monitor, special,     false, Monitor::_safepoint_check_never);
 215   def(Service_lock                 , Monitor, special,     true,  Monitor::_safepoint_check_never);      // used for service thread operations
 216   def(JmethodIdCreation_lock       , Mutex  , leaf,        true,  Monitor::_safepoint_check_always);     // used for creating jmethodIDs.
 217 
 218   def(SystemDictionary_lock        , Monitor, leaf,        true,  Monitor::_safepoint_check_always);     // lookups done by VM thread
 219   def(PackageTable_lock            , Mutex  , leaf,        false, Monitor::_safepoint_check_always);
 220   def(InlineCacheBuffer_lock       , Mutex  , leaf,        true,  Monitor::_safepoint_check_always);
 221   def(VMStatistic_lock             , Mutex  , leaf,        false, Monitor::_safepoint_check_always);
 222   def(ExpandHeap_lock              , Mutex  , leaf,        true,  Monitor::_safepoint_check_always);     // Used during compilation by VM thread
 223   def(JNIHandleBlockFreeList_lock  , Mutex  , leaf,        true,  Monitor::_safepoint_check_never);      // handles are used by VM thread
 224   def(SignatureHandlerLibrary_lock , Mutex  , leaf,        false, Monitor::_safepoint_check_always);
 225   def(SymbolTable_lock             , Mutex  , leaf+2,      true,  Monitor::_safepoint_check_always);


 240   // CMS_freeList_lock                        leaf 2
 241 
 242   def(Safepoint_lock               , Monitor, safepoint,   true,  Monitor::_safepoint_check_sometimes);  // locks SnippetCache_lock/Threads_lock
 243 
 244   def(Threads_lock                 , Monitor, barrier,     true,  Monitor::_safepoint_check_sometimes);
 245 
 246   def(VMOperationQueue_lock        , Monitor, nonleaf,     true,  Monitor::_safepoint_check_sometimes);  // VM_thread allowed to block on these
 247   def(VMOperationRequest_lock      , Monitor, nonleaf,     true,  Monitor::_safepoint_check_sometimes);
 248   def(RetData_lock                 , Mutex  , nonleaf,     false, Monitor::_safepoint_check_always);
 249   def(Terminator_lock              , Monitor, nonleaf,     true,  Monitor::_safepoint_check_sometimes);
 250   def(VtableStubs_lock             , Mutex  , nonleaf,     true,  Monitor::_safepoint_check_always);
 251   def(Notify_lock                  , Monitor, nonleaf,     true,  Monitor::_safepoint_check_always);
 252   def(JNIGlobalHandle_lock         , Mutex  , nonleaf,     true,  Monitor::_safepoint_check_always);     // locks JNIHandleBlockFreeList_lock
 253   def(JNICritical_lock             , Monitor, nonleaf,     true,  Monitor::_safepoint_check_always);     // used for JNI critical regions
 254   def(AdapterHandlerLibrary_lock   , Mutex  , nonleaf,     true,  Monitor::_safepoint_check_always);
 255   if (UseConcMarkSweepGC) {
 256     def(SLT_lock                   , Monitor, nonleaf,     false, Monitor::_safepoint_check_never);      // used in CMS GC for locking PLL lock
 257   }
 258 
 259   def(Heap_lock                    , Monitor, nonleaf+1,   false, Monitor::_safepoint_check_sometimes);

 260   def(JfieldIdCreation_lock        , Mutex  , nonleaf+1,   true,  Monitor::_safepoint_check_always);     // jfieldID, Used in VM_Operation
 261   def(MemberNameTable_lock         , Mutex  , nonleaf+1,   false, Monitor::_safepoint_check_always);     // Used to protect MemberNameTable
 262 
 263   def(CompiledIC_lock              , Mutex  , nonleaf+2,   false, Monitor::_safepoint_check_always);     // locks VtableStubs_lock, InlineCacheBuffer_lock
 264   def(CompileTaskAlloc_lock        , Mutex  , nonleaf+2,   true,  Monitor::_safepoint_check_always);
 265   def(CompileStatistics_lock       , Mutex  , nonleaf+2,   false, Monitor::_safepoint_check_always);
 266   def(MultiArray_lock              , Mutex  , nonleaf+2,   false, Monitor::_safepoint_check_always);     // locks SymbolTable_lock
 267 
 268   def(JvmtiThreadState_lock        , Mutex  , nonleaf+2,   false, Monitor::_safepoint_check_always);     // Used by JvmtiThreadState/JvmtiEventController
 269   def(JvmtiPendingEvent_lock       , Monitor, nonleaf,     false, Monitor::_safepoint_check_never);      // Used by JvmtiCodeBlobEvents
 270   def(Management_lock              , Mutex  , nonleaf+2,   false, Monitor::_safepoint_check_always);     // used for JVM management
 271 
 272   def(Compile_lock                 , Mutex  , nonleaf+3,   true,  Monitor::_safepoint_check_sometimes);
 273   def(MethodData_lock              , Mutex  , nonleaf+3,   false, Monitor::_safepoint_check_always);
 274   def(TouchedMethodLog_lock        , Mutex  , nonleaf+3,   false, Monitor::_safepoint_check_always);
 275 
 276   def(MethodCompileQueue_lock      , Monitor, nonleaf+4,   true,  Monitor::_safepoint_check_always);
 277   def(Debug2_lock                  , Mutex  , nonleaf+4,   true,  Monitor::_safepoint_check_never);
 278   def(Debug3_lock                  , Mutex  , nonleaf+4,   true,  Monitor::_safepoint_check_never);
 279   def(ProfileVM_lock               , Monitor, special,     false, Monitor::_safepoint_check_never);      // used for profiling of the VMThread




  36 // set at JVM startup-time, they should never be subsequently mutated.
  37 // Instead of using pointers to malloc()ed monitors and mutexes we should consider
  38 // eliminating the indirection and using instances instead.
  39 // Consider using GCC's __read_mostly.
  40 
  41 Mutex*   Patching_lock                = NULL;
  42 Monitor* SystemDictionary_lock        = NULL;
  43 Mutex*   PackageTable_lock            = NULL;
  44 Mutex*   CompiledIC_lock              = NULL;
  45 Mutex*   InlineCacheBuffer_lock       = NULL;
  46 Mutex*   VMStatistic_lock             = NULL;
  47 Mutex*   JNIGlobalHandle_lock         = NULL;
  48 Mutex*   JNIHandleBlockFreeList_lock  = NULL;
  49 Mutex*   MemberNameTable_lock         = NULL;
  50 Mutex*   JmethodIdCreation_lock       = NULL;
  51 Mutex*   JfieldIdCreation_lock        = NULL;
  52 Monitor* JNICritical_lock             = NULL;
  53 Mutex*   JvmtiThreadState_lock        = NULL;
  54 Monitor* JvmtiPendingEvent_lock       = NULL;
  55 Monitor* Heap_lock                    = NULL;
  56 Monitor* ShenandoahHeap_lock          = NULL;
  57 Monitor* ShenandoahFullGC_lock        = NULL;
  58 Monitor* ShenandoahJNICritical_lock   = NULL;
  59 Mutex*   ExpandHeap_lock              = NULL;
  60 Mutex*   AdapterHandlerLibrary_lock   = NULL;
  61 Mutex*   SignatureHandlerLibrary_lock = NULL;
  62 Mutex*   VtableStubs_lock             = NULL;
  63 Mutex*   SymbolTable_lock             = NULL;
  64 Mutex*   StringTable_lock             = NULL;
  65 Monitor* StringDedupQueue_lock        = NULL;
  66 Mutex*   StringDedupTable_lock        = NULL;
  67 Monitor* CodeCache_lock               = NULL;
  68 Mutex*   MethodData_lock              = NULL;
  69 Mutex*   TouchedMethodLog_lock        = NULL;
  70 Mutex*   RetData_lock                 = NULL;
  71 Monitor* VMOperationQueue_lock        = NULL;
  72 Monitor* VMOperationRequest_lock      = NULL;
  73 Monitor* Safepoint_lock               = NULL;
  74 Monitor* SerializePage_lock           = NULL;
  75 Monitor* Threads_lock                 = NULL;
  76 Monitor* CGC_lock                     = NULL;
  77 Monitor* STS_lock                     = NULL;
  78 Monitor* SLT_lock                     = NULL;


  86 Monitor* DirtyCardQ_CBL_mon           = NULL;
  87 Mutex*   Shared_DirtyCardQ_lock       = NULL;
  88 Mutex*   ParGCRareEvent_lock          = NULL;
  89 Mutex*   DerivedPointerTableGC_lock   = NULL;
  90 Mutex*   Compile_lock                 = NULL;
  91 Monitor* MethodCompileQueue_lock      = NULL;
  92 Monitor* CompileThread_lock           = NULL;
  93 Monitor* Compilation_lock             = NULL;
  94 Mutex*   CompileTaskAlloc_lock        = NULL;
  95 Mutex*   CompileStatistics_lock       = NULL;
  96 Mutex*   MultiArray_lock              = NULL;
  97 Monitor* Terminator_lock              = NULL;
  98 Monitor* BeforeExit_lock              = NULL;
  99 Monitor* Notify_lock                  = NULL;
 100 Monitor* Interrupt_lock               = NULL;
 101 Monitor* ProfileVM_lock               = NULL;
 102 Mutex*   ProfilePrint_lock            = NULL;
 103 Mutex*   ExceptionCache_lock          = NULL;
 104 Monitor* ObjAllocPost_lock            = NULL;
 105 Mutex*   OsrList_lock                 = NULL;
 106 Monitor* ShenandoahMemProtect_lock    = NULL;
 107 
 108 #ifndef PRODUCT
 109 Mutex*   FullGCALot_lock              = NULL;
 110 #endif
 111 
 112 Mutex*   Debug1_lock                  = NULL;
 113 Mutex*   Debug2_lock                  = NULL;
 114 Mutex*   Debug3_lock                  = NULL;
 115 
 116 Mutex*   tty_lock                     = NULL;
 117 
 118 Mutex*   RawMonitor_lock              = NULL;
 119 Mutex*   PerfDataMemAlloc_lock        = NULL;
 120 Mutex*   PerfDataManager_lock         = NULL;
 121 Mutex*   OopMapCacheAlloc_lock        = NULL;
 122 
 123 Mutex*   FreeList_lock                = NULL;
 124 Monitor* SecondaryFreeList_lock       = NULL;
 125 Mutex*   OldSets_lock                 = NULL;
 126 Monitor* RootRegionScan_lock          = NULL;


 190 
 191     def(CMark_lock                 , Monitor, nonleaf,     true,  Monitor::_safepoint_check_never);      // coordinate concurrent mark thread
 192     def(CMRegionStack_lock         , Mutex,   leaf,        true,  Monitor::_safepoint_check_never);
 193     def(SATB_Q_FL_lock             , Mutex  , special,     true,  Monitor::_safepoint_check_never);
 194     def(SATB_Q_CBL_mon             , Monitor, nonleaf,     true,  Monitor::_safepoint_check_never);
 195     def(Shared_SATB_Q_lock         , Mutex,   nonleaf,     true,  Monitor::_safepoint_check_never);
 196 
 197     def(DirtyCardQ_FL_lock         , Mutex  , special,     true,  Monitor::_safepoint_check_never);
 198     def(DirtyCardQ_CBL_mon         , Monitor, nonleaf,     true,  Monitor::_safepoint_check_never);
 199     def(Shared_DirtyCardQ_lock     , Mutex,   nonleaf,     true,  Monitor::_safepoint_check_never);
 200 
 201     def(FreeList_lock              , Mutex,   leaf     ,   true,  Monitor::_safepoint_check_never);
 202     def(SecondaryFreeList_lock     , Monitor, leaf     ,   true,  Monitor::_safepoint_check_never);
 203     def(OldSets_lock               , Mutex  , leaf     ,   true,  Monitor::_safepoint_check_never);
 204     def(RootRegionScan_lock        , Monitor, leaf     ,   true,  Monitor::_safepoint_check_never);
 205     def(MMUTracker_lock            , Mutex  , leaf     ,   true,  Monitor::_safepoint_check_never);
 206 
 207     def(StringDedupQueue_lock      , Monitor, leaf,        true,  Monitor::_safepoint_check_never);
 208     def(StringDedupTable_lock      , Mutex  , leaf,        true,  Monitor::_safepoint_check_never);
 209   }
 210   if (UseShenandoahGC) {
 211     def(SATB_Q_FL_lock             , Mutex  , special,     true,  Monitor::_safepoint_check_never);
 212     def(SATB_Q_CBL_mon             , Monitor, nonleaf,     true,  Monitor::_safepoint_check_never);
 213     def(Shared_SATB_Q_lock         , Mutex,   nonleaf,     true,  Monitor::_safepoint_check_never);
 214     def(ShenandoahFullGC_lock      , Monitor, leaf,        true,  Monitor::_safepoint_check_always);
 215     def(ShenandoahJNICritical_lock , Monitor, nonleaf+1,   false, Monitor::_safepoint_check_never);
 216     def(ShenandoahMemProtect_lock  , Monitor, native,      false, Monitor::_safepoint_check_never);
 217   }
 218   def(ParGCRareEvent_lock          , Mutex  , leaf     ,   true,  Monitor::_safepoint_check_sometimes);
 219   def(DerivedPointerTableGC_lock   , Mutex,   leaf,        true,  Monitor::_safepoint_check_never);
 220   def(CodeCache_lock               , Mutex  , special,     true,  Monitor::_safepoint_check_never);
 221   def(Interrupt_lock               , Monitor, special,     true,  Monitor::_safepoint_check_never);      // used for interrupt processing
 222   def(RawMonitor_lock              , Mutex,   special,     true,  Monitor::_safepoint_check_never);
 223   def(OopMapCacheAlloc_lock        , Mutex,   leaf,        true,  Monitor::_safepoint_check_always);     // used for oop_map_cache allocation.
 224 
 225   def(Patching_lock                , Mutex  , special,     true,  Monitor::_safepoint_check_never);      // used for safepointing and code patching.
 226   def(ObjAllocPost_lock            , Monitor, special,     false, Monitor::_safepoint_check_never);
 227   def(Service_lock                 , Monitor, special,     true,  Monitor::_safepoint_check_never);      // used for service thread operations
 228   def(JmethodIdCreation_lock       , Mutex  , leaf,        true,  Monitor::_safepoint_check_always);     // used for creating jmethodIDs.
 229 
 230   def(SystemDictionary_lock        , Monitor, leaf,        true,  Monitor::_safepoint_check_always);     // lookups done by VM thread
 231   def(PackageTable_lock            , Mutex  , leaf,        false, Monitor::_safepoint_check_always);
 232   def(InlineCacheBuffer_lock       , Mutex  , leaf,        true,  Monitor::_safepoint_check_always);
 233   def(VMStatistic_lock             , Mutex  , leaf,        false, Monitor::_safepoint_check_always);
 234   def(ExpandHeap_lock              , Mutex  , leaf,        true,  Monitor::_safepoint_check_always);     // Used during compilation by VM thread
 235   def(JNIHandleBlockFreeList_lock  , Mutex  , leaf,        true,  Monitor::_safepoint_check_never);      // handles are used by VM thread
 236   def(SignatureHandlerLibrary_lock , Mutex  , leaf,        false, Monitor::_safepoint_check_always);
 237   def(SymbolTable_lock             , Mutex  , leaf+2,      true,  Monitor::_safepoint_check_always);


 252   // CMS_freeList_lock                        leaf 2
 253 
 254   def(Safepoint_lock               , Monitor, safepoint,   true,  Monitor::_safepoint_check_sometimes);  // locks SnippetCache_lock/Threads_lock
 255 
 256   def(Threads_lock                 , Monitor, barrier,     true,  Monitor::_safepoint_check_sometimes);
 257 
 258   def(VMOperationQueue_lock        , Monitor, nonleaf,     true,  Monitor::_safepoint_check_sometimes);  // VM_thread allowed to block on these
 259   def(VMOperationRequest_lock      , Monitor, nonleaf,     true,  Monitor::_safepoint_check_sometimes);
 260   def(RetData_lock                 , Mutex  , nonleaf,     false, Monitor::_safepoint_check_always);
 261   def(Terminator_lock              , Monitor, nonleaf,     true,  Monitor::_safepoint_check_sometimes);
 262   def(VtableStubs_lock             , Mutex  , nonleaf,     true,  Monitor::_safepoint_check_always);
 263   def(Notify_lock                  , Monitor, nonleaf,     true,  Monitor::_safepoint_check_always);
 264   def(JNIGlobalHandle_lock         , Mutex  , nonleaf,     true,  Monitor::_safepoint_check_always);     // locks JNIHandleBlockFreeList_lock
 265   def(JNICritical_lock             , Monitor, nonleaf,     true,  Monitor::_safepoint_check_always);     // used for JNI critical regions
 266   def(AdapterHandlerLibrary_lock   , Mutex  , nonleaf,     true,  Monitor::_safepoint_check_always);
 267   if (UseConcMarkSweepGC) {
 268     def(SLT_lock                   , Monitor, nonleaf,     false, Monitor::_safepoint_check_never);      // used in CMS GC for locking PLL lock
 269   }
 270 
 271   def(Heap_lock                    , Monitor, nonleaf+1,   false, Monitor::_safepoint_check_sometimes);
 272   def(ShenandoahHeap_lock          , Monitor, special,     false, Monitor::_safepoint_check_never);
 273   def(JfieldIdCreation_lock        , Mutex  , nonleaf+1,   true,  Monitor::_safepoint_check_always);     // jfieldID, Used in VM_Operation
 274   def(MemberNameTable_lock         , Mutex  , nonleaf+1,   false, Monitor::_safepoint_check_always);     // Used to protect MemberNameTable
 275 
 276   def(CompiledIC_lock              , Mutex  , nonleaf+2,   false, Monitor::_safepoint_check_always);     // locks VtableStubs_lock, InlineCacheBuffer_lock
 277   def(CompileTaskAlloc_lock        , Mutex  , nonleaf+2,   true,  Monitor::_safepoint_check_always);
 278   def(CompileStatistics_lock       , Mutex  , nonleaf+2,   false, Monitor::_safepoint_check_always);
 279   def(MultiArray_lock              , Mutex  , nonleaf+2,   false, Monitor::_safepoint_check_always);     // locks SymbolTable_lock
 280 
 281   def(JvmtiThreadState_lock        , Mutex  , nonleaf+2,   false, Monitor::_safepoint_check_always);     // Used by JvmtiThreadState/JvmtiEventController
 282   def(JvmtiPendingEvent_lock       , Monitor, nonleaf,     false, Monitor::_safepoint_check_never);      // Used by JvmtiCodeBlobEvents
 283   def(Management_lock              , Mutex  , nonleaf+2,   false, Monitor::_safepoint_check_always);     // used for JVM management
 284 
 285   def(Compile_lock                 , Mutex  , nonleaf+3,   true,  Monitor::_safepoint_check_sometimes);
 286   def(MethodData_lock              , Mutex  , nonleaf+3,   false, Monitor::_safepoint_check_always);
 287   def(TouchedMethodLog_lock        , Mutex  , nonleaf+3,   false, Monitor::_safepoint_check_always);
 288 
 289   def(MethodCompileQueue_lock      , Monitor, nonleaf+4,   true,  Monitor::_safepoint_check_always);
 290   def(Debug2_lock                  , Mutex  , nonleaf+4,   true,  Monitor::_safepoint_check_never);
 291   def(Debug3_lock                  , Mutex  , nonleaf+4,   true,  Monitor::_safepoint_check_never);
 292   def(ProfileVM_lock               , Monitor, special,     false, Monitor::_safepoint_check_never);      // used for profiling of the VMThread


< prev index next >