aboutsummaryrefslogtreecommitdiff
path: root/src/share/vm/runtime/mutexLocker.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/share/vm/runtime/mutexLocker.cpp')
-rw-r--r--src/share/vm/runtime/mutexLocker.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/share/vm/runtime/mutexLocker.cpp b/src/share/vm/runtime/mutexLocker.cpp
index 7653b5bef..0a2d8795b 100644
--- a/src/share/vm/runtime/mutexLocker.cpp
+++ b/src/share/vm/runtime/mutexLocker.cpp
@@ -132,7 +132,13 @@ Mutex* HotCardCache_lock = NULL;
Monitor* GCTaskManager_lock = NULL;
Mutex* Management_lock = NULL;
-Monitor* Service_lock = NULL;
+Monitor* Service_lock = NULL;
+Mutex* Stacktrace_lock = NULL;
+
+Monitor* JfrQuery_lock = NULL;
+Monitor* JfrMsg_lock = NULL;
+Mutex* JfrBuffer_lock = NULL;
+Mutex* JfrStream_lock = NULL;
#define MAX_NUM_MUTEX 128
static Monitor * _mutex_array[MAX_NUM_MUTEX];
@@ -207,6 +213,7 @@ void mutex_init() {
def(Patching_lock , Mutex , special, true ); // used for safepointing and code patching.
def(ObjAllocPost_lock , Monitor, special, false);
def(Service_lock , Monitor, special, true ); // used for service thread operations
+ def(Stacktrace_lock , Mutex, special, true ); // used for JFR stacktrace database
def(JmethodIdCreation_lock , Mutex , leaf, true ); // used for creating jmethodIDs.
def(SystemDictionary_lock , Monitor, leaf, true ); // lookups done by VM thread
@@ -271,6 +278,11 @@ void mutex_init() {
def(Debug3_lock , Mutex , nonleaf+4, true );
def(ProfileVM_lock , Monitor, nonleaf+4, false); // used for profiling of the VMThread
def(CompileThread_lock , Monitor, nonleaf+5, false );
+
+ def(JfrQuery_lock , Monitor, nonleaf, true); // JFR locks, keep these in consecutive order
+ def(JfrMsg_lock , Monitor, nonleaf+2, true);
+ def(JfrBuffer_lock , Mutex, nonleaf+3, true);
+ def(JfrStream_lock , Mutex, nonleaf+4, true);
}
GCMutexLocker::GCMutexLocker(Monitor * mutex) {