@@ -199,161 +199,161 @@ static void add_mutex(Mutex* var) {
199
199
_mutex_array[_num_mutex++] = var;
200
200
}
201
201
202
- #define def (var, type, pri, vm_block ) { \
203
- var = new type (Mutex::pri, #var, vm_block ); \
202
+ #define def (var, type, pri, ... ) { \
203
+ var = new type (Mutex::pri, #var, ##__VA_ARGS__ ); \
204
204
add_mutex (var); \
205
205
}
206
206
207
207
// Specify relative ranked lock
208
208
#ifdef ASSERT
209
- #define defl (var, type, held_lock, vm_block ) { \
210
- var = new type (held_lock->rank ()-1 , #var, vm_block ); \
209
+ #define defl (var, type, held_lock, ... ) { \
210
+ var = new type (held_lock->rank ()-1 , #var, ##__VA_ARGS__ ); \
211
211
add_mutex (var); \
212
212
}
213
213
#else
214
- #define defl (var, type, held_lock, vm_block ) { \
215
- var = new type (Mutex::safepoint, #var, vm_block); \
214
+ #define defl (var, type, held_lock, ... ) { \
215
+ var = new type (Mutex::safepoint, #var, ##__VA_ARGS__); \
216
216
add_mutex (var); \
217
217
}
218
218
#endif
219
219
220
220
// Using Padded subclasses to prevent false sharing of these global monitors and mutexes.
221
221
void mutex_init () {
222
- def (tty_lock , PaddedMutex , tty, true ); // allow to lock in VM
222
+ def (tty_lock , PaddedMutex , tty); // allow to lock in VM
223
223
224
- def (STS_lock , PaddedMonitor, nosafepoint, true );
224
+ def (STS_lock , PaddedMonitor, nosafepoint);
225
225
226
226
if (UseG1GC) {
227
- def (CGC_lock , PaddedMonitor, nosafepoint, true );
227
+ def (CGC_lock , PaddedMonitor, nosafepoint);
228
228
229
- def (G1DetachedRefinementStats_lock, PaddedMutex, nosafepoint-2 , true );
229
+ def (G1DetachedRefinementStats_lock, PaddedMutex, nosafepoint-2 );
230
230
231
- def (FreeList_lock , PaddedMutex , service-1 , true );
232
- def (OldSets_lock , PaddedMutex , nosafepoint, true );
233
- def (Uncommit_lock , PaddedMutex , service-2 , true );
234
- def (RootRegionScan_lock , PaddedMonitor, nosafepoint-1 , true );
231
+ def (FreeList_lock , PaddedMutex , service-1 );
232
+ def (OldSets_lock , PaddedMutex , nosafepoint);
233
+ def (Uncommit_lock , PaddedMutex , service-2 );
234
+ def (RootRegionScan_lock , PaddedMonitor, nosafepoint-1 );
235
235
236
- def (MarkStackFreeList_lock , PaddedMutex , nosafepoint, true );
237
- def (MarkStackChunkList_lock , PaddedMutex , nosafepoint, true );
236
+ def (MarkStackFreeList_lock , PaddedMutex , nosafepoint);
237
+ def (MarkStackChunkList_lock , PaddedMutex , nosafepoint);
238
238
239
- def (MonitoringSupport_lock , PaddedMutex , service-1 , true ); // used for serviceability monitoring support
239
+ def (MonitoringSupport_lock , PaddedMutex , service-1 ); // used for serviceability monitoring support
240
240
}
241
- def (StringDedup_lock , PaddedMonitor, nosafepoint, true );
242
- def (StringDedupIntern_lock , PaddedMutex , nosafepoint, true );
243
- def (ParGCRareEvent_lock , PaddedMutex , safepoint, true );
244
- def (RawMonitor_lock , PaddedMutex , nosafepoint-1 , true );
241
+ def (StringDedup_lock , PaddedMonitor, nosafepoint);
242
+ def (StringDedupIntern_lock , PaddedMutex , nosafepoint);
243
+ def (ParGCRareEvent_lock , PaddedMutex , safepoint, true );
244
+ def (RawMonitor_lock , PaddedMutex , nosafepoint-1 );
245
245
246
- def (Metaspace_lock , PaddedMutex , nosafepoint-3 , true );
246
+ def (Metaspace_lock , PaddedMutex , nosafepoint-3 );
247
247
248
- def (Patching_lock , PaddedMutex , nosafepoint, true ); // used for safepointing and code patching.
249
- def (MonitorDeflation_lock , PaddedMonitor, nosafepoint, true ); // used for monitor deflation thread operations
250
- def (Service_lock , PaddedMonitor, service, true ); // used for service thread operations
248
+ def (Patching_lock , PaddedMutex , nosafepoint); // used for safepointing and code patching.
249
+ def (MonitorDeflation_lock , PaddedMonitor, nosafepoint); // used for monitor deflation thread operations
250
+ def (Service_lock , PaddedMonitor, service); // used for service thread operations
251
251
252
252
if (UseNotificationThread) {
253
- def (Notification_lock , PaddedMonitor, service, true ); // used for notification thread operations
253
+ def (Notification_lock , PaddedMonitor, service); // used for notification thread operations
254
254
} else {
255
255
Notification_lock = Service_lock;
256
256
}
257
257
258
- def (JmethodIdCreation_lock , PaddedMutex , nosafepoint-2 , true ); // used for creating jmethodIDs.
258
+ def (JmethodIdCreation_lock , PaddedMutex , nosafepoint-2 ); // used for creating jmethodIDs.
259
259
260
260
def (SharedDictionary_lock , PaddedMutex , safepoint, true );
261
- def (VMStatistic_lock , PaddedMutex , safepoint, false );
262
- def (JNIHandleBlockFreeList_lock , PaddedMutex , nosafepoint-1 , true ); // handles are used by VM thread
263
- def (SignatureHandlerLibrary_lock , PaddedMutex , safepoint, false );
264
- def (SymbolArena_lock , PaddedMutex , nosafepoint, true );
265
- def (ExceptionCache_lock , PaddedMutex , safepoint, false );
261
+ def (VMStatistic_lock , PaddedMutex , safepoint);
262
+ def (JNIHandleBlockFreeList_lock , PaddedMutex , nosafepoint-1 ); // handles are used by VM thread
263
+ def (SignatureHandlerLibrary_lock , PaddedMutex , safepoint);
264
+ def (SymbolArena_lock , PaddedMutex , nosafepoint);
265
+ def (ExceptionCache_lock , PaddedMutex , safepoint);
266
266
#ifndef PRODUCT
267
- def (FullGCALot_lock , PaddedMutex , safepoint, false ); // a lock to make FullGCALot MT safe
267
+ def (FullGCALot_lock , PaddedMutex , safepoint); // a lock to make FullGCALot MT safe
268
268
#endif
269
269
def (BeforeExit_lock , PaddedMonitor, safepoint, true );
270
270
271
- def (NonJavaThreadsList_lock , PaddedMutex, nosafepoint-1 , true );
272
- def (NonJavaThreadsListSync_lock , PaddedMutex, nosafepoint, true );
271
+ def (NonJavaThreadsList_lock , PaddedMutex, nosafepoint-1 );
272
+ def (NonJavaThreadsListSync_lock , PaddedMutex, nosafepoint);
273
273
274
- def (RetData_lock , PaddedMutex , safepoint, false );
274
+ def (RetData_lock , PaddedMutex , safepoint);
275
275
def (Terminator_lock , PaddedMonitor, safepoint, true );
276
- def (InitCompleted_lock , PaddedMonitor, nosafepoint, true );
276
+ def (InitCompleted_lock , PaddedMonitor, nosafepoint);
277
277
def (Notify_lock , PaddedMonitor, safepoint, true );
278
278
def (AdapterHandlerLibrary_lock , PaddedMutex , safepoint, true );
279
279
280
- def (Heap_lock , PaddedMonitor, safepoint, false ); // Doesn't safepoint check during termination.
280
+ def (Heap_lock , PaddedMonitor, safepoint); // Doesn't safepoint check during termination.
281
281
def (JfieldIdCreation_lock , PaddedMutex , safepoint, true ); // jfieldID, Used in VM_Operation
282
282
283
- def (CompiledIC_lock , PaddedMutex , nosafepoint, true ); // locks VtableStubs_lock, InlineCacheBuffer_lock
284
- def (MethodCompileQueue_lock , PaddedMonitor, safepoint, false );
285
- def (CompileStatistics_lock , PaddedMutex , safepoint, false );
286
- def (DirectivesStack_lock , PaddedMutex , nosafepoint, true );
287
- def (MultiArray_lock , PaddedMutex , safepoint, false );
283
+ def (CompiledIC_lock , PaddedMutex , nosafepoint); // locks VtableStubs_lock, InlineCacheBuffer_lock
284
+ def (MethodCompileQueue_lock , PaddedMonitor, safepoint);
285
+ def (CompileStatistics_lock , PaddedMutex , safepoint);
286
+ def (DirectivesStack_lock , PaddedMutex , nosafepoint);
287
+ def (MultiArray_lock , PaddedMutex , safepoint);
288
288
289
- def (JvmtiThreadState_lock , PaddedMutex , safepoint, false ); // Used by JvmtiThreadState/JvmtiEventController
290
- def (EscapeBarrier_lock , PaddedMonitor, nosafepoint, true ); // Used to synchronize object reallocation/relocking triggered by JVMTI
291
- def (Management_lock , PaddedMutex , safepoint, false ); // used for JVM management
289
+ def (JvmtiThreadState_lock , PaddedMutex , safepoint); // Used by JvmtiThreadState/JvmtiEventController
290
+ def (EscapeBarrier_lock , PaddedMonitor, nosafepoint); // Used to synchronize object reallocation/relocking triggered by JVMTI
291
+ def (Management_lock , PaddedMutex , safepoint); // used for JVM management
292
292
293
293
def (ConcurrentGCBreakpoints_lock , PaddedMonitor, safepoint, true );
294
- def (MethodData_lock , PaddedMutex , safepoint, false );
295
- def (TouchedMethodLog_lock , PaddedMutex , safepoint, false );
294
+ def (MethodData_lock , PaddedMutex , safepoint);
295
+ def (TouchedMethodLog_lock , PaddedMutex , safepoint);
296
296
297
- def (CompileThread_lock , PaddedMonitor, safepoint, false );
297
+ def (CompileThread_lock , PaddedMonitor, safepoint);
298
298
def (PeriodicTask_lock , PaddedMonitor, safepoint, true );
299
299
def (RedefineClasses_lock , PaddedMonitor, safepoint, true );
300
300
def (Verify_lock , PaddedMutex, safepoint, true );
301
301
302
302
if (WhiteBoxAPI) {
303
- def (Compilation_lock , PaddedMonitor, nosafepoint, true );
303
+ def (Compilation_lock , PaddedMonitor, nosafepoint);
304
304
}
305
305
306
306
#if INCLUDE_JFR
307
- def (JfrBuffer_lock , PaddedMutex , nosafepoint, true );
308
- def (JfrMsg_lock , PaddedMonitor, nosafepoint-3 , true );
309
- def (JfrStacktrace_lock , PaddedMutex , stackwatermark-1 , true );
310
- def (JfrThreadSampler_lock , PaddedMonitor, nosafepoint, true );
307
+ def (JfrBuffer_lock , PaddedMutex , nosafepoint);
308
+ def (JfrMsg_lock , PaddedMonitor, nosafepoint-3 );
309
+ def (JfrStacktrace_lock , PaddedMutex , stackwatermark-1 );
310
+ def (JfrThreadSampler_lock , PaddedMonitor, nosafepoint);
311
311
#endif
312
312
313
313
#ifndef SUPPORTS_NATIVE_CX8
314
- def (UnsafeJlong_lock , PaddedMutex , nosafepoint, true );
314
+ def (UnsafeJlong_lock , PaddedMutex , nosafepoint);
315
315
#endif
316
316
317
- def (CodeHeapStateAnalytics_lock , PaddedMutex , safepoint, false );
318
- def (NMethodSweeperStats_lock , PaddedMutex , nosafepoint, true );
319
- def (ThreadsSMRDelete_lock , PaddedMonitor, nosafepoint-3 , true ); // Holds ConcurrentHashTableResize_lock
320
- def (ThreadIdTableCreate_lock , PaddedMutex , safepoint, false );
321
- def (SharedDecoder_lock , PaddedMutex , tty-1 , true );
322
- def (DCmdFactory_lock , PaddedMutex , nosafepoint, true );
317
+ def (CodeHeapStateAnalytics_lock , PaddedMutex , safepoint);
318
+ def (NMethodSweeperStats_lock , PaddedMutex , nosafepoint);
319
+ def (ThreadsSMRDelete_lock , PaddedMonitor, nosafepoint-3 ); // Holds ConcurrentHashTableResize_lock
320
+ def (ThreadIdTableCreate_lock , PaddedMutex , safepoint);
321
+ def (SharedDecoder_lock , PaddedMutex , tty-1 );
322
+ def (DCmdFactory_lock , PaddedMutex , nosafepoint);
323
323
#if INCLUDE_NMT
324
- def (NMTQuery_lock , PaddedMutex , safepoint, false );
324
+ def (NMTQuery_lock , PaddedMutex , safepoint);
325
325
#endif
326
326
#if INCLUDE_CDS
327
327
#if INCLUDE_JVMTI
328
- def (CDSClassFileStream_lock , PaddedMutex , safepoint, false );
328
+ def (CDSClassFileStream_lock , PaddedMutex , safepoint);
329
329
#endif
330
- def (DumpTimeTable_lock , PaddedMutex , nosafepoint, true );
331
- def (CDSLambda_lock , PaddedMutex , nosafepoint, true );
332
- def (DumpRegion_lock , PaddedMutex , nosafepoint, true );
333
- def (ClassListFile_lock , PaddedMutex , nosafepoint, true );
334
- def (LambdaFormInvokers_lock , PaddedMutex , safepoint, false );
330
+ def (DumpTimeTable_lock , PaddedMutex , nosafepoint);
331
+ def (CDSLambda_lock , PaddedMutex , nosafepoint);
332
+ def (DumpRegion_lock , PaddedMutex , nosafepoint);
333
+ def (ClassListFile_lock , PaddedMutex , nosafepoint);
334
+ def (LambdaFormInvokers_lock , PaddedMutex , safepoint);
335
335
#endif // INCLUDE_CDS
336
- def (Bootclasspath_lock , PaddedMutex , nosafepoint, true );
337
- def (Zip_lock , PaddedMonitor, nosafepoint-1 , true ); // Holds DumpTimeTable_lock
336
+ def (Bootclasspath_lock , PaddedMutex , nosafepoint);
337
+ def (Zip_lock , PaddedMonitor, nosafepoint-1 ); // Holds DumpTimeTable_lock
338
338
339
339
#if INCLUDE_JVMCI
340
340
def (JVMCI_lock , PaddedMonitor, safepoint, true );
341
341
#endif
342
342
343
343
// These locks have relative rankings, and inherit safepoint checking attributes from that rank.
344
- defl (InlineCacheBuffer_lock , PaddedMutex , CompiledIC_lock, true );
345
- defl (VtableStubs_lock , PaddedMutex , CompiledIC_lock, true ); // Also holds DumpTimeTable_lock
346
- defl (CodeCache_lock , PaddedMonitor, VtableStubs_lock, true );
347
- defl (CompiledMethod_lock , PaddedMutex , CodeCache_lock, true );
348
- defl (CodeSweeper_lock , PaddedMonitor, CompiledMethod_lock, true );
344
+ defl (InlineCacheBuffer_lock , PaddedMutex , CompiledIC_lock);
345
+ defl (VtableStubs_lock , PaddedMutex , CompiledIC_lock); // Also holds DumpTimeTable_lock
346
+ defl (CodeCache_lock , PaddedMonitor, VtableStubs_lock);
347
+ defl (CompiledMethod_lock , PaddedMutex , CodeCache_lock);
348
+ defl (CodeSweeper_lock , PaddedMonitor, CompiledMethod_lock);
349
349
350
350
defl (Threads_lock , PaddedMonitor, CompileThread_lock, true );
351
- defl (Heap_lock , PaddedMonitor, MultiArray_lock, false );
352
- defl (Compile_lock , PaddedMutex , MethodCompileQueue_lock, false );
351
+ defl (Heap_lock , PaddedMonitor, MultiArray_lock);
352
+ defl (Compile_lock , PaddedMutex , MethodCompileQueue_lock);
353
353
354
354
defl (PerfDataMemAlloc_lock , PaddedMutex , Heap_lock, true );
355
355
defl (PerfDataManager_lock , PaddedMutex , Heap_lock, true );
356
- defl (ClassLoaderDataGraph_lock , PaddedMutex , MultiArray_lock, false );
356
+ defl (ClassLoaderDataGraph_lock , PaddedMutex , MultiArray_lock);
357
357
defl (VMOperation_lock , PaddedMonitor, Compile_lock, true );
358
358
defl (ClassInitError_lock , PaddedMonitor, Threads_lock, true );
359
359
@@ -363,7 +363,7 @@ void mutex_init() {
363
363
defl (CompileTaskAlloc_lock , PaddedMutex , MethodCompileQueue_lock, true );
364
364
defl (ExpandHeap_lock , PaddedMutex , Heap_lock, true );
365
365
defl (OopMapCacheAlloc_lock , PaddedMutex , Threads_lock, true );
366
- defl (Module_lock , PaddedMutex , ClassLoaderDataGraph_lock, false );
366
+ defl (Module_lock , PaddedMutex , ClassLoaderDataGraph_lock);
367
367
defl (SystemDictionary_lock , PaddedMonitor, Module_lock, true );
368
368
defl (JNICritical_lock , PaddedMonitor, MultiArray_lock, true ); // used for JNI critical regions
369
369
}
0 commit comments