comparison src/share/vm/runtime/mutexLocker.hpp @ 360:5d254928c888

Merge
author ysr
date Wed, 27 Aug 2008 11:20:46 -0700
parents 1ee8caae33af
children 315a5d70b295
comparison
equal deleted inserted replaced
341:d60e4e6d7f72 360:5d254928c888
36 extern Mutex* JmethodIdCreation_lock; // a lock on creating JNI method identifiers 36 extern Mutex* JmethodIdCreation_lock; // a lock on creating JNI method identifiers
37 extern Mutex* JfieldIdCreation_lock; // a lock on creating JNI static field identifiers 37 extern Mutex* JfieldIdCreation_lock; // a lock on creating JNI static field identifiers
38 extern Monitor* JNICritical_lock; // a lock used while entering and exiting JNI critical regions, allows GC to sometimes get in 38 extern Monitor* JNICritical_lock; // a lock used while entering and exiting JNI critical regions, allows GC to sometimes get in
39 extern Mutex* JvmtiThreadState_lock; // a lock on modification of JVMTI thread data 39 extern Mutex* JvmtiThreadState_lock; // a lock on modification of JVMTI thread data
40 extern Monitor* JvmtiPendingEvent_lock; // a lock on the JVMTI pending events list 40 extern Monitor* JvmtiPendingEvent_lock; // a lock on the JVMTI pending events list
41 extern Mutex* Heap_lock; // a lock on the heap 41 extern Monitor* Heap_lock; // a lock on the heap
42 extern Mutex* ExpandHeap_lock; // a lock on expanding the heap 42 extern Mutex* ExpandHeap_lock; // a lock on expanding the heap
43 extern Mutex* AdapterHandlerLibrary_lock; // a lock on the AdapterHandlerLibrary 43 extern Mutex* AdapterHandlerLibrary_lock; // a lock on the AdapterHandlerLibrary
44 extern Mutex* SignatureHandlerLibrary_lock; // a lock on the SignatureHandlerLibrary 44 extern Mutex* SignatureHandlerLibrary_lock; // a lock on the SignatureHandlerLibrary
45 extern Mutex* VtableStubs_lock; // a lock on the VtableStubs 45 extern Mutex* VtableStubs_lock; // a lock on the VtableStubs
46 extern Mutex* SymbolTable_lock; // a lock on the symbol table 46 extern Mutex* SymbolTable_lock; // a lock on the symbol table
58 // fore- & background GC threads. 58 // fore- & background GC threads.
59 extern Mutex* STS_init_lock; // coordinate initialization of SuspendibleThreadSets. 59 extern Mutex* STS_init_lock; // coordinate initialization of SuspendibleThreadSets.
60 extern Monitor* SLT_lock; // used in CMS GC for acquiring PLL 60 extern Monitor* SLT_lock; // used in CMS GC for acquiring PLL
61 extern Monitor* iCMS_lock; // CMS incremental mode start/stop notification 61 extern Monitor* iCMS_lock; // CMS incremental mode start/stop notification
62 extern Monitor* FullGCCount_lock; // in support of "concurrent" full gc 62 extern Monitor* FullGCCount_lock; // in support of "concurrent" full gc
63 extern Monitor* CMark_lock; // used for concurrent mark thread coordination
64 extern Monitor* ZF_mon; // used for G1 conc zero-fill.
65 extern Monitor* Cleanup_mon; // used for G1 conc cleanup.
66 extern Monitor* G1ConcRefine_mon; // used for G1 conc-refine
67 // coordination.
68
69 extern Mutex* SATB_Q_FL_lock; // Protects SATB Q
70 // buffer free list.
71 extern Monitor* SATB_Q_CBL_mon; // Protects SATB Q
72 // completed buffer queue.
73 extern Mutex* Shared_SATB_Q_lock; // Lock protecting SATB
74 // queue shared by
75 // non-Java threads.
76
77 extern Mutex* DirtyCardQ_FL_lock; // Protects dirty card Q
78 // buffer free list.
79 extern Monitor* DirtyCardQ_CBL_mon; // Protects dirty card Q
80 // completed buffer queue.
81 extern Mutex* Shared_DirtyCardQ_lock; // Lock protecting dirty card
82 // queue shared by
83 // non-Java threads.
63 // (see option ExplicitGCInvokesConcurrent) 84 // (see option ExplicitGCInvokesConcurrent)
64 extern Mutex* ParGCRareEvent_lock; // Synchronizes various (rare) parallel GC ops. 85 extern Mutex* ParGCRareEvent_lock; // Synchronizes various (rare) parallel GC ops.
86 extern Mutex* EvacFailureStack_lock; // guards the evac failure scan stack
65 extern Mutex* Compile_lock; // a lock held when Compilation is updating code (used to block CodeCache traversal, CHA updates, etc) 87 extern Mutex* Compile_lock; // a lock held when Compilation is updating code (used to block CodeCache traversal, CHA updates, etc)
66 extern Monitor* MethodCompileQueue_lock; // a lock held when method compilations are enqueued, dequeued 88 extern Monitor* MethodCompileQueue_lock; // a lock held when method compilations are enqueued, dequeued
67 #ifdef TIERED 89 #ifdef TIERED
68 extern Monitor* C1_lock; // a lock to ensure on single c1 compile is ever active 90 extern Monitor* C1_lock; // a lock to ensure on single c1 compile is ever active
69 #endif // TIERED 91 #endif // TIERED
91 extern Mutex* PerfDataMemAlloc_lock; // a lock on the allocator for PerfData memory for performance data 113 extern Mutex* PerfDataMemAlloc_lock; // a lock on the allocator for PerfData memory for performance data
92 extern Mutex* PerfDataManager_lock; // a long on access to PerfDataManager resources 114 extern Mutex* PerfDataManager_lock; // a long on access to PerfDataManager resources
93 extern Mutex* ParkerFreeList_lock; 115 extern Mutex* ParkerFreeList_lock;
94 extern Mutex* OopMapCacheAlloc_lock; // protects allocation of oop_map caches 116 extern Mutex* OopMapCacheAlloc_lock; // protects allocation of oop_map caches
95 117
118 extern Mutex* MMUTracker_lock; // protects the MMU
119 // tracker data structures
120 extern Mutex* HotCardCache_lock; // protects the hot card cache
121
96 extern Mutex* Management_lock; // a lock used to serialize JVM management 122 extern Mutex* Management_lock; // a lock used to serialize JVM management
97 extern Monitor* LowMemory_lock; // a lock used for low memory detection 123 extern Monitor* LowMemory_lock; // a lock used for low memory detection
98 124
99 // A MutexLocker provides mutual exclusion with respect to a given mutex 125 // A MutexLocker provides mutual exclusion with respect to a given mutex
100 // for the scope which contains the locker. The lock is an OS lock, not 126 // for the scope which contains the locker. The lock is an OS lock, not