hotspot/src/share/vm/runtime/mutexLocker.cpp
changeset 11480 1bf714e8adb4
parent 10565 dc90c239f4ec
child 11587 16b0200f252d
equal deleted inserted replaced
11441:a89f443814cd 11480:1bf714e8adb4
   130 Mutex*   HotCardCache_lock            = NULL;
   130 Mutex*   HotCardCache_lock            = NULL;
   131 
   131 
   132 Monitor* GCTaskManager_lock           = NULL;
   132 Monitor* GCTaskManager_lock           = NULL;
   133 
   133 
   134 Mutex*   Management_lock              = NULL;
   134 Mutex*   Management_lock              = NULL;
   135 Monitor* Service_lock               = NULL;
   135 Monitor* Service_lock                 = NULL;
       
   136 Mutex*   Stacktrace_lock              = NULL;
       
   137 
       
   138 Monitor* JfrQuery_lock                = NULL;
       
   139 Monitor* JfrMsg_lock                  = NULL;
       
   140 Mutex*   JfrBuffer_lock               = NULL;
       
   141 Mutex*   JfrStream_lock               = NULL;
   136 
   142 
   137 #define MAX_NUM_MUTEX 128
   143 #define MAX_NUM_MUTEX 128
   138 static Monitor * _mutex_array[MAX_NUM_MUTEX];
   144 static Monitor * _mutex_array[MAX_NUM_MUTEX];
   139 static int _num_mutex;
   145 static int _num_mutex;
   140 
   146 
   205   def(OopMapCacheAlloc_lock        , Mutex,   leaf,        true ); // used for oop_map_cache allocation.
   211   def(OopMapCacheAlloc_lock        , Mutex,   leaf,        true ); // used for oop_map_cache allocation.
   206 
   212 
   207   def(Patching_lock                , Mutex  , special,     true ); // used for safepointing and code patching.
   213   def(Patching_lock                , Mutex  , special,     true ); // used for safepointing and code patching.
   208   def(ObjAllocPost_lock            , Monitor, special,     false);
   214   def(ObjAllocPost_lock            , Monitor, special,     false);
   209   def(Service_lock                 , Monitor, special,     true ); // used for service thread operations
   215   def(Service_lock                 , Monitor, special,     true ); // used for service thread operations
       
   216   def(Stacktrace_lock              , Mutex,   special,     true ); // used for JFR stacktrace database
   210   def(JmethodIdCreation_lock       , Mutex  , leaf,        true ); // used for creating jmethodIDs.
   217   def(JmethodIdCreation_lock       , Mutex  , leaf,        true ); // used for creating jmethodIDs.
   211 
   218 
   212   def(SystemDictionary_lock        , Monitor, leaf,        true ); // lookups done by VM thread
   219   def(SystemDictionary_lock        , Monitor, leaf,        true ); // lookups done by VM thread
   213   def(PackageTable_lock            , Mutex  , leaf,        false);
   220   def(PackageTable_lock            , Mutex  , leaf,        false);
   214   def(InlineCacheBuffer_lock       , Mutex  , leaf,        true );
   221   def(InlineCacheBuffer_lock       , Mutex  , leaf,        true );
   269   def(MethodCompileQueue_lock      , Monitor, nonleaf+4,   true );
   276   def(MethodCompileQueue_lock      , Monitor, nonleaf+4,   true );
   270   def(Debug2_lock                  , Mutex  , nonleaf+4,   true );
   277   def(Debug2_lock                  , Mutex  , nonleaf+4,   true );
   271   def(Debug3_lock                  , Mutex  , nonleaf+4,   true );
   278   def(Debug3_lock                  , Mutex  , nonleaf+4,   true );
   272   def(ProfileVM_lock               , Monitor, nonleaf+4,   false); // used for profiling of the VMThread
   279   def(ProfileVM_lock               , Monitor, nonleaf+4,   false); // used for profiling of the VMThread
   273   def(CompileThread_lock           , Monitor, nonleaf+5,   false );
   280   def(CompileThread_lock           , Monitor, nonleaf+5,   false );
       
   281 
       
   282   def(JfrQuery_lock                , Monitor, nonleaf,     true);  // JFR locks, keep these in consecutive order
       
   283   def(JfrMsg_lock                  , Monitor, nonleaf+2,   true);
       
   284   def(JfrBuffer_lock               , Mutex,   nonleaf+3,   true);
       
   285   def(JfrStream_lock               , Mutex,   nonleaf+4,   true);
   274 }
   286 }
   275 
   287 
   276 GCMutexLocker::GCMutexLocker(Monitor * mutex) {
   288 GCMutexLocker::GCMutexLocker(Monitor * mutex) {
   277   if (SafepointSynchronize::is_at_safepoint()) {
   289   if (SafepointSynchronize::is_at_safepoint()) {
   278     _locked = false;
   290     _locked = false;