148 Mutex* SharedDecoder_lock = NULL; |
148 Mutex* SharedDecoder_lock = NULL; |
149 Mutex* DCmdFactory_lock = NULL; |
149 Mutex* DCmdFactory_lock = NULL; |
150 #if INCLUDE_NMT |
150 #if INCLUDE_NMT |
151 Mutex* NMTQuery_lock = NULL; |
151 Mutex* NMTQuery_lock = NULL; |
152 #endif |
152 #endif |
|
153 #if INCLUDE_CDS && INCLUDE_JVMTI |
|
154 Mutex* CDSClassFileStream_lock = NULL; |
|
155 #endif |
153 |
156 |
154 #define MAX_NUM_MUTEX 128 |
157 #define MAX_NUM_MUTEX 128 |
155 static Monitor * _mutex_array[MAX_NUM_MUTEX]; |
158 static Monitor * _mutex_array[MAX_NUM_MUTEX]; |
156 static int _num_mutex; |
159 static int _num_mutex; |
157 |
160 |
336 def(ThreadsSMRDelete_lock , PaddedMonitor, special, false, Monitor::_safepoint_check_never); |
339 def(ThreadsSMRDelete_lock , PaddedMonitor, special, false, Monitor::_safepoint_check_never); |
337 def(SharedDecoder_lock , PaddedMutex , native, false, Monitor::_safepoint_check_never); |
340 def(SharedDecoder_lock , PaddedMutex , native, false, Monitor::_safepoint_check_never); |
338 def(DCmdFactory_lock , PaddedMutex , leaf, true, Monitor::_safepoint_check_never); |
341 def(DCmdFactory_lock , PaddedMutex , leaf, true, Monitor::_safepoint_check_never); |
339 #if INCLUDE_NMT |
342 #if INCLUDE_NMT |
340 def(NMTQuery_lock , PaddedMutex , max_nonleaf, false, Monitor::_safepoint_check_always); |
343 def(NMTQuery_lock , PaddedMutex , max_nonleaf, false, Monitor::_safepoint_check_always); |
|
344 #endif |
|
345 #if INCLUDE_CDS && INCLUDE_JVMTI |
|
346 def(CDSClassFileStream_lock , PaddedMutex , max_nonleaf, false, Monitor::_safepoint_check_always); |
341 #endif |
347 #endif |
342 } |
348 } |
343 |
349 |
344 GCMutexLocker::GCMutexLocker(Monitor * mutex) { |
350 GCMutexLocker::GCMutexLocker(Monitor * mutex) { |
345 if (SafepointSynchronize::is_at_safepoint()) { |
351 if (SafepointSynchronize::is_at_safepoint()) { |