comparison src/share/vm/runtime/mutexLocker.hpp @ 4970:33df1aeaebbf

Merge with http://hg.openjdk.java.net/hsx/hsx24/hotspot/
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Mon, 27 Feb 2012 13:10:13 +0100
parents 0a10d80352d5
children 51111665eda6 c284cf4781f0
comparison
equal deleted inserted replaced
4703:2cfb7fb2dce7 4970:33df1aeaebbf
1 /* 1 /*
2 * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
113 extern Mutex* ExceptionCache_lock; // a lock used to synchronize exception cache updates 113 extern Mutex* ExceptionCache_lock; // a lock used to synchronize exception cache updates
114 extern Mutex* OsrList_lock; // a lock used to serialize access to OSR queues 114 extern Mutex* OsrList_lock; // a lock used to serialize access to OSR queues
115 115
116 #ifndef PRODUCT 116 #ifndef PRODUCT
117 extern Mutex* FullGCALot_lock; // a lock to make FullGCALot MT safe 117 extern Mutex* FullGCALot_lock; // a lock to make FullGCALot MT safe
118 #endif 118 #endif // PRODUCT
119 extern Mutex* Debug1_lock; // A bunch of pre-allocated locks that can be used for tracing 119 extern Mutex* Debug1_lock; // A bunch of pre-allocated locks that can be used for tracing
120 extern Mutex* Debug2_lock; // down synchronization related bugs! 120 extern Mutex* Debug2_lock; // down synchronization related bugs!
121 extern Mutex* Debug3_lock; 121 extern Mutex* Debug3_lock;
122 122
123 extern Mutex* RawMonitor_lock; 123 extern Mutex* RawMonitor_lock;
127 extern Mutex* OopMapCacheAlloc_lock; // protects allocation of oop_map caches 127 extern Mutex* OopMapCacheAlloc_lock; // protects allocation of oop_map caches
128 128
129 extern Mutex* FreeList_lock; // protects the free region list during safepoints 129 extern Mutex* FreeList_lock; // protects the free region list during safepoints
130 extern Monitor* SecondaryFreeList_lock; // protects the secondary free region list 130 extern Monitor* SecondaryFreeList_lock; // protects the secondary free region list
131 extern Mutex* OldSets_lock; // protects the old region sets 131 extern Mutex* OldSets_lock; // protects the old region sets
132 extern Monitor* RootRegionScan_lock; // used to notify that the CM threads have finished scanning the IM snapshot regions
132 extern Mutex* MMUTracker_lock; // protects the MMU 133 extern Mutex* MMUTracker_lock; // protects the MMU
133 // tracker data structures 134 // tracker data structures
134 extern Mutex* HotCardCache_lock; // protects the hot card cache 135 extern Mutex* HotCardCache_lock; // protects the hot card cache
135 136
136 extern Mutex* Management_lock; // a lock used to serialize JVM management 137 extern Mutex* Management_lock; // a lock used to serialize JVM management
137 extern Monitor* Service_lock; // a lock used for service thread operation 138 extern Monitor* Service_lock; // a lock used for service thread operation
139 extern Mutex* Stacktrace_lock; // used to guard access to the stacktrace table
140
141 extern Monitor* JfrQuery_lock; // protects JFR use
142 extern Monitor* JfrMsg_lock; // protects JFR messaging
143 extern Mutex* JfrBuffer_lock; // protects JFR buffer operations
144 extern Mutex* JfrStream_lock; // protects JFR stream access
138 145
139 // A MutexLocker provides mutual exclusion with respect to a given mutex 146 // A MutexLocker provides mutual exclusion with respect to a given mutex
140 // for the scope which contains the locker. The lock is an OS lock, not 147 // for the scope which contains the locker. The lock is an OS lock, not
141 // an object lock, and the two do not interoperate. Do not use Mutex-based 148 // an object lock, and the two do not interoperate. Do not use Mutex-based
142 // locks to lock on Java objects, because they will not be respected if a 149 // locks to lock on Java objects, because they will not be respected if a