10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_VM_RUNTIME_MUTEXLOCKER_HPP
26 #define SHARE_VM_RUNTIME_MUTEXLOCKER_HPP
27
28 #include "memory/allocation.hpp"
29 #include "runtime/mutex.hpp"
30 #ifdef TARGET_OS_FAMILY_linux
31 # include "os_linux.inline.hpp"
32 #endif
33 #ifdef TARGET_OS_FAMILY_solaris
34 # include "os_solaris.inline.hpp"
35 #endif
36 #ifdef TARGET_OS_FAMILY_windows
37 # include "os_windows.inline.hpp"
38 #endif
39 #ifdef TARGET_OS_FAMILY_aix
40 # include "os_aix.inline.hpp"
41 #endif
42 #ifdef TARGET_OS_FAMILY_bsd
43 # include "os_bsd.inline.hpp"
44 #endif
45
46 // Mutexes used in the VM.
47
48 extern Mutex* Patching_lock; // a lock used to guard code patching of compiled code
49 extern Monitor* SystemDictionary_lock; // a lock on the system dictionary
50 extern Mutex* PackageTable_lock; // a lock on the class loader package table
51 extern Mutex* CompiledIC_lock; // a lock used to guard compiled IC patching and access
52 extern Mutex* InlineCacheBuffer_lock; // a lock used to guard the InlineCacheBuffer
53 extern Mutex* VMStatistic_lock; // a lock used to guard statistics count increment
54 extern Mutex* JNIGlobalHandle_lock; // a lock on creating JNI global handles
55 extern Mutex* JNIHandleBlockFreeList_lock; // a lock on the JNI handle block free list
56 extern Mutex* MemberNameTable_lock; // a lock on the MemberNameTable updates
57 extern Mutex* JmethodIdCreation_lock; // a lock on creating JNI method identifiers
58 extern Mutex* JfieldIdCreation_lock; // a lock on creating JNI static field identifiers
59 extern Monitor* JNICritical_lock; // a lock used while entering and exiting JNI critical regions, allows GC to sometimes get in
60 extern Mutex* JvmtiThreadState_lock; // a lock on modification of JVMTI thread data
61 extern Monitor* JvmtiPendingEvent_lock; // a lock on the JVMTI pending events list
62 extern Monitor* Heap_lock; // a lock on the heap
63 extern Mutex* ExpandHeap_lock; // a lock on expanding the heap
64 extern Mutex* AdapterHandlerLibrary_lock; // a lock on the AdapterHandlerLibrary
|
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_VM_RUNTIME_MUTEXLOCKER_HPP
26 #define SHARE_VM_RUNTIME_MUTEXLOCKER_HPP
27
28 #include "memory/allocation.hpp"
29 #include "runtime/mutex.hpp"
30
31 // Mutexes used in the VM.
32
33 extern Mutex* Patching_lock; // a lock used to guard code patching of compiled code
34 extern Monitor* SystemDictionary_lock; // a lock on the system dictionary
35 extern Mutex* PackageTable_lock; // a lock on the class loader package table
36 extern Mutex* CompiledIC_lock; // a lock used to guard compiled IC patching and access
37 extern Mutex* InlineCacheBuffer_lock; // a lock used to guard the InlineCacheBuffer
38 extern Mutex* VMStatistic_lock; // a lock used to guard statistics count increment
39 extern Mutex* JNIGlobalHandle_lock; // a lock on creating JNI global handles
40 extern Mutex* JNIHandleBlockFreeList_lock; // a lock on the JNI handle block free list
41 extern Mutex* MemberNameTable_lock; // a lock on the MemberNameTable updates
42 extern Mutex* JmethodIdCreation_lock; // a lock on creating JNI method identifiers
43 extern Mutex* JfieldIdCreation_lock; // a lock on creating JNI static field identifiers
44 extern Monitor* JNICritical_lock; // a lock used while entering and exiting JNI critical regions, allows GC to sometimes get in
45 extern Mutex* JvmtiThreadState_lock; // a lock on modification of JVMTI thread data
46 extern Monitor* JvmtiPendingEvent_lock; // a lock on the JVMTI pending events list
47 extern Monitor* Heap_lock; // a lock on the heap
48 extern Mutex* ExpandHeap_lock; // a lock on expanding the heap
49 extern Mutex* AdapterHandlerLibrary_lock; // a lock on the AdapterHandlerLibrary
|