Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
27c9ddfc
D
dragonwell8_hotspot
项目概览
openanolis
/
dragonwell8_hotspot
通知
2
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_hotspot
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
27c9ddfc
编写于
8月 23, 2013
作者:
M
mgronlun
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8023457: Event based tracing framework needs a mutex for thread groups
Reviewed-by: acorn, sla
上级
5df8a0eb
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
16 addition
and
8 deletion
+16
-8
src/share/vm/runtime/mutexLocker.cpp
src/share/vm/runtime/mutexLocker.cpp
+11
-5
src/share/vm/runtime/mutexLocker.hpp
src/share/vm/runtime/mutexLocker.hpp
+5
-3
未找到文件。
src/share/vm/runtime/mutexLocker.cpp
浏览文件 @
27c9ddfc
...
...
@@ -124,13 +124,15 @@ Monitor* GCTaskManager_lock = NULL;
Mutex
*
Management_lock
=
NULL
;
Monitor
*
Service_lock
=
NULL
;
M
utex
*
Stacktrace_lock
=
NULL
;
M
onitor
*
PeriodicTask_lock
=
NULL
;
Monitor
*
JfrQuery_lock
=
NULL
;
#ifdef INCLUDE_TRACE
Mutex
*
JfrStacktrace_lock
=
NULL
;
Monitor
*
JfrMsg_lock
=
NULL
;
Mutex
*
JfrBuffer_lock
=
NULL
;
Mutex
*
JfrStream_lock
=
NULL
;
Monitor
*
PeriodicTask_lock
=
NULL
;
Mutex
*
JfrThreadGroups_lock
=
NULL
;
#endif
#define MAX_NUM_MUTEX 128
static
Monitor
*
_mutex_array
[
MAX_NUM_MUTEX
];
...
...
@@ -206,7 +208,6 @@ 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
...
...
@@ -272,11 +273,16 @@ void mutex_init() {
def
(
Debug3_lock
,
Mutex
,
nonleaf
+
4
,
true
);
def
(
ProfileVM_lock
,
Monitor
,
special
,
false
);
// used for profiling of the VMThread
def
(
CompileThread_lock
,
Monitor
,
nonleaf
+
5
,
false
);
def
(
PeriodicTask_lock
,
Monitor
,
nonleaf
+
5
,
true
);
#ifdef INCLUDE_TRACE
def
(
JfrMsg_lock
,
Monitor
,
leaf
,
true
);
def
(
JfrBuffer_lock
,
Mutex
,
nonleaf
+
1
,
true
);
def
(
JfrThreadGroups_lock
,
Mutex
,
nonleaf
+
1
,
true
);
def
(
JfrStream_lock
,
Mutex
,
nonleaf
+
2
,
true
);
def
(
PeriodicTask_lock
,
Monitor
,
nonleaf
+
5
,
true
);
def
(
JfrStacktrace_lock
,
Mutex
,
special
,
true
);
#endif
}
GCMutexLocker
::
GCMutexLocker
(
Monitor
*
mutex
)
{
...
...
src/share/vm/runtime/mutexLocker.hpp
浏览文件 @
27c9ddfc
...
...
@@ -137,13 +137,15 @@ extern Mutex* HotCardCache_lock; // protects the hot card cache
extern
Mutex
*
Management_lock
;
// a lock used to serialize JVM management
extern
Monitor
*
Service_lock
;
// a lock used for service thread operation
extern
M
utex
*
Stacktrace_lock
;
// used to guard access to the stacktrace tabl
e
extern
M
onitor
*
PeriodicTask_lock
;
// protects the periodic task structur
e
extern
Monitor
*
JfrQuery_lock
;
// protects JFR use
#ifdef INCLUDE_TRACE
extern
Mutex
*
JfrStacktrace_lock
;
// used to guard access to the JFR stacktrace table
extern
Monitor
*
JfrMsg_lock
;
// protects JFR messaging
extern
Mutex
*
JfrBuffer_lock
;
// protects JFR buffer operations
extern
Mutex
*
JfrStream_lock
;
// protects JFR stream access
extern
Monitor
*
PeriodicTask_lock
;
// protects the periodic task structure
extern
Mutex
*
JfrThreadGroups_lock
;
// protects JFR access to Thread Groups
#endif
// A MutexLocker provides mutual exclusion with respect to a given mutex
// for the scope which contains the locker. The lock is an OS lock, not
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录