< prev index next >

src/hotspot/share/runtime/mutexLocker.hpp

Print this page




  93                                                  // queue shared by
  94                                                  // non-Java threads.
  95 extern Mutex*   MarkStackFreeList_lock;          // Protects access to the global mark stack free list.
  96 extern Mutex*   MarkStackChunkList_lock;         // Protects access to the global mark stack chunk list.
  97 extern Mutex*   MonitoringSupport_lock;          // Protects updates to the serviceability memory pools.
  98 extern Mutex*   ParGCRareEvent_lock;             // Synchronizes various (rare) parallel GC ops.
  99 extern Mutex*   Compile_lock;                    // a lock held when Compilation is updating code (used to block CodeCache traversal, CHA updates, etc)
 100 extern Monitor* MethodCompileQueue_lock;         // a lock held when method compilations are enqueued, dequeued
 101 extern Monitor* CompileThread_lock;              // a lock held by compile threads during compilation system initialization
 102 extern Monitor* Compilation_lock;                // a lock used to pause compilation
 103 extern Mutex*   CompileTaskAlloc_lock;           // a lock held when CompileTasks are allocated
 104 extern Mutex*   CompileStatistics_lock;          // a lock held when updating compilation statistics
 105 extern Mutex*   DirectivesStack_lock;            // a lock held when mutating the dirstack and ref counting directives
 106 extern Mutex*   MultiArray_lock;                 // a lock used to guard allocation of multi-dim arrays
 107 extern Monitor* Terminator_lock;                 // a lock used to guard termination of the vm
 108 extern Monitor* BeforeExit_lock;                 // a lock used to guard cleanups and shutdown hooks
 109 extern Monitor* Notify_lock;                     // a lock used to synchronize the start-up of the vm
 110 extern Mutex*   ProfilePrint_lock;               // a lock used to serialize the printing of profiles
 111 extern Mutex*   ExceptionCache_lock;             // a lock used to synchronize exception cache updates
 112 extern Mutex*   OsrList_lock;                    // a lock used to serialize access to OSR queues

 113 
 114 #ifndef PRODUCT
 115 extern Mutex*   FullGCALot_lock;                 // a lock to make FullGCALot MT safe
 116 #endif // PRODUCT
 117 extern Mutex*   Debug1_lock;                     // A bunch of pre-allocated locks that can be used for tracing
 118 extern Mutex*   Debug2_lock;                     // down synchronization related bugs!
 119 extern Mutex*   Debug3_lock;
 120 
 121 extern Mutex*   RawMonitor_lock;
 122 extern Mutex*   PerfDataMemAlloc_lock;           // a lock on the allocator for PerfData memory for performance data
 123 extern Mutex*   PerfDataManager_lock;            // a long on access to PerfDataManager resources
 124 extern Mutex*   ParkerFreeList_lock;
 125 extern Mutex*   OopMapCacheAlloc_lock;           // protects allocation of oop_map caches
 126 
 127 extern Mutex*   FreeList_lock;                   // protects the free region list during safepoints
 128 extern Mutex*   OldSets_lock;                    // protects the old region sets
 129 extern Monitor* RootRegionScan_lock;             // used to notify that the CM threads have finished scanning the IM snapshot regions
 130 
 131 extern Mutex*   Management_lock;                 // a lock used to serialize JVM management
 132 extern Monitor* Service_lock;                    // a lock used for service thread operation
 133 extern Monitor* PeriodicTask_lock;               // protects the periodic task structure
 134 extern Monitor* RedefineClasses_lock;            // locks classes from parallel redefinition
 135 


 136 #if INCLUDE_JFR
 137 extern Mutex*   JfrStacktrace_lock;              // used to guard access to the JFR stacktrace table
 138 extern Monitor* JfrMsg_lock;                     // protects JFR messaging
 139 extern Mutex*   JfrBuffer_lock;                  // protects JFR buffer operations
 140 extern Mutex*   JfrStream_lock;                  // protects JFR stream access

 141 #endif
 142 
 143 #ifndef SUPPORTS_NATIVE_CX8
 144 extern Mutex*   UnsafeJlong_lock;                // provides Unsafe atomic updates to jlongs on platforms that don't support cx8
 145 #endif
 146 
 147 extern Mutex*   MetaspaceExpand_lock;            // protects Metaspace virtualspace and chunk expansions
 148 extern Mutex*   ClassLoaderDataGraph_lock;       // protects CLDG list, needed for concurrent unloading
 149 
 150 
 151 extern Monitor* CodeHeapStateAnalytics_lock;     // lock print functions against concurrent analyze functions.
 152                                                  // Only used locally in PrintCodeCacheLayout processing.
 153 
 154 // A MutexLocker provides mutual exclusion with respect to a given mutex
 155 // for the scope which contains the locker.  The lock is an OS lock, not
 156 // an object lock, and the two do not interoperate.  Do not use Mutex-based
 157 // locks to lock on Java objects, because they will not be respected if a
 158 // that object is locked using the Java locking mechanism.
 159 //
 160 //                NOTE WELL!!




  93                                                  // queue shared by
  94                                                  // non-Java threads.
  95 extern Mutex*   MarkStackFreeList_lock;          // Protects access to the global mark stack free list.
  96 extern Mutex*   MarkStackChunkList_lock;         // Protects access to the global mark stack chunk list.
  97 extern Mutex*   MonitoringSupport_lock;          // Protects updates to the serviceability memory pools.
  98 extern Mutex*   ParGCRareEvent_lock;             // Synchronizes various (rare) parallel GC ops.
  99 extern Mutex*   Compile_lock;                    // a lock held when Compilation is updating code (used to block CodeCache traversal, CHA updates, etc)
 100 extern Monitor* MethodCompileQueue_lock;         // a lock held when method compilations are enqueued, dequeued
 101 extern Monitor* CompileThread_lock;              // a lock held by compile threads during compilation system initialization
 102 extern Monitor* Compilation_lock;                // a lock used to pause compilation
 103 extern Mutex*   CompileTaskAlloc_lock;           // a lock held when CompileTasks are allocated
 104 extern Mutex*   CompileStatistics_lock;          // a lock held when updating compilation statistics
 105 extern Mutex*   DirectivesStack_lock;            // a lock held when mutating the dirstack and ref counting directives
 106 extern Mutex*   MultiArray_lock;                 // a lock used to guard allocation of multi-dim arrays
 107 extern Monitor* Terminator_lock;                 // a lock used to guard termination of the vm
 108 extern Monitor* BeforeExit_lock;                 // a lock used to guard cleanups and shutdown hooks
 109 extern Monitor* Notify_lock;                     // a lock used to synchronize the start-up of the vm
 110 extern Mutex*   ProfilePrint_lock;               // a lock used to serialize the printing of profiles
 111 extern Mutex*   ExceptionCache_lock;             // a lock used to synchronize exception cache updates
 112 extern Mutex*   OsrList_lock;                    // a lock used to serialize access to OSR queues
 113 extern Mutex*   NMethodSweeper_stat_lock;        // a lock used to serialize access to sweeper statistics
 114 
 115 #ifndef PRODUCT
 116 extern Mutex*   FullGCALot_lock;                 // a lock to make FullGCALot MT safe
 117 #endif // PRODUCT
 118 extern Mutex*   Debug1_lock;                     // A bunch of pre-allocated locks that can be used for tracing
 119 extern Mutex*   Debug2_lock;                     // down synchronization related bugs!
 120 extern Mutex*   Debug3_lock;
 121 
 122 extern Mutex*   RawMonitor_lock;
 123 extern Mutex*   PerfDataMemAlloc_lock;           // a lock on the allocator for PerfData memory for performance data
 124 extern Mutex*   PerfDataManager_lock;            // a long on access to PerfDataManager resources
 125 extern Mutex*   ParkerFreeList_lock;
 126 extern Mutex*   OopMapCacheAlloc_lock;           // protects allocation of oop_map caches
 127 
 128 extern Mutex*   FreeList_lock;                   // protects the free region list during safepoints
 129 extern Mutex*   OldSets_lock;                    // protects the old region sets
 130 extern Monitor* RootRegionScan_lock;             // used to notify that the CM threads have finished scanning the IM snapshot regions
 131 
 132 extern Mutex*   Management_lock;                 // a lock used to serialize JVM management
 133 extern Monitor* Service_lock;                    // a lock used for service thread operation
 134 extern Monitor* PeriodicTask_lock;               // protects the periodic task structure
 135 extern Monitor* RedefineClasses_lock;            // locks classes from parallel redefinition
 136 extern Monitor* ThreadsSMRSupport_delete_lock;   // Used by ThreadsSMRSupport to take pressure off the Threads_lock
 137 extern Mutex*   Decoder_shared_decoder_lock;     // serializes access to the decoder during normal (not error reporting) use
 138 extern Mutex*   DCmdFactory_lock;                // serialize access to DCmdFactory information
 139 #if INCLUDE_JFR
 140 extern Mutex*   JfrStacktrace_lock;              // used to guard access to the JFR stacktrace table
 141 extern Monitor* JfrMsg_lock;                     // protects JFR messaging
 142 extern Mutex*   JfrBuffer_lock;                  // protects JFR buffer operations
 143 extern Mutex*   JfrStream_lock;                  // protects JFR stream access
 144 extern Monitor* JfrThreadSampler_lock;           // used to suspend/resume JFR thread sampler
 145 #endif
 146 
 147 #ifndef SUPPORTS_NATIVE_CX8
 148 extern Mutex*   UnsafeJlong_lock;                // provides Unsafe atomic updates to jlongs on platforms that don't support cx8
 149 #endif
 150 
 151 extern Mutex*   MetaspaceExpand_lock;            // protects Metaspace virtualspace and chunk expansions
 152 extern Mutex*   ClassLoaderDataGraph_lock;       // protects CLDG list, needed for concurrent unloading
 153 
 154 
 155 extern Monitor* CodeHeapStateAnalytics_lock;     // lock print functions against concurrent analyze functions.
 156                                                  // Only used locally in PrintCodeCacheLayout processing.
 157 
 158 // A MutexLocker provides mutual exclusion with respect to a given mutex
 159 // for the scope which contains the locker.  The lock is an OS lock, not
 160 // an object lock, and the two do not interoperate.  Do not use Mutex-based
 161 // locks to lock on Java objects, because they will not be respected if a
 162 // that object is locked using the Java locking mechanism.
 163 //
 164 //                NOTE WELL!!


< prev index next >