Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_hotspot
提交
7f9f4b1a
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看板
提交
7f9f4b1a
编写于
8月 31, 2008
作者:
A
apangin
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
67c26660
bc4843e3
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
11 addition
and
7 deletion
+11
-7
src/share/vm/runtime/thread.cpp
src/share/vm/runtime/thread.cpp
+11
-7
未找到文件。
src/share/vm/runtime/thread.cpp
浏览文件 @
7f9f4b1a
...
...
@@ -2756,13 +2756,17 @@ void Threads::threads_do(ThreadClosure* tc) {
// For now, just manually iterate through them.
tc
->
do_thread
(
VMThread
::
vm_thread
());
Universe
::
heap
()
->
gc_threads_do
(
tc
);
{
// Grab the Terminator_lock to prevent watcher_thread from being terminated.
MutexLockerEx
mu
(
Terminator_lock
,
Mutex
::
_no_safepoint_check_flag
);
WatcherThread
*
wt
=
WatcherThread
::
watcher_thread
();
if
(
wt
!=
NULL
)
tc
->
do_thread
(
wt
);
}
WatcherThread
*
wt
=
WatcherThread
::
watcher_thread
();
// Strictly speaking, the following NULL check isn't sufficient to make sure
// the data for WatcherThread is still valid upon being examined. However,
// considering that WatchThread terminates when the VM is on the way to
// exit at safepoint, the chance of the above is extremely small. The right
// way to prevent termination of WatcherThread would be to acquire
// Terminator_lock, but we can't do that without violating the lock rank
// checking in some cases.
if
(
wt
!=
NULL
)
tc
->
do_thread
(
wt
);
// If CompilerThreads ever become non-JavaThreads, add them here
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录