Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
jobily
Runtime
提交
579b1d93
R
Runtime
项目概览
jobily
/
Runtime
12 个月 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Runtime
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
579b1d93
编写于
1月 22, 2020
作者:
A
Andrew Au
提交者:
GitHub
1月 22, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Remove gc_lh_block_event (#2059)
上级
fd7a5e8c
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
2 addition
and
50 deletion
+2
-50
src/coreclr/src/gc/gc.cpp
src/coreclr/src/gc/gc.cpp
+2
-34
src/coreclr/src/gc/gcee.cpp
src/coreclr/src/gc/gcee.cpp
+0
-11
src/coreclr/src/gc/gcpriv.h
src/coreclr/src/gc/gcpriv.h
+0
-5
未找到文件。
src/coreclr/src/gc/gc.cpp
浏览文件 @
579b1d93
...
...
@@ -2825,8 +2825,6 @@ BOOL gc_heap::bgc_thread_running;
CLRCriticalSection gc_heap::bgc_threads_timeout_cs;
GCEvent gc_heap::gc_lh_block_event;
#endif //BACKGROUND_GC
#ifdef MARK_LIST
...
...
@@ -16542,8 +16540,6 @@ void gc_heap::init_background_gc ()
background_saved_lowest_address,
background_saved_highest_address));
}
gc_lh_block_event.Reset();
}
#endif //BACKGROUND_GC
...
...
@@ -28352,36 +28348,18 @@ cleanup:
BOOL gc_heap::create_bgc_thread_support()
{
BOOL ret = FALSE;
uint8_t** parr;
if (!gc_lh_block_event.CreateManualEventNoThrow(FALSE))
{
goto cleanup;
}
//needs to have room for enough smallest objects fitting on a page
parr = new (nothrow) uint8_t*[1 + OS_PAGE_SIZE / MIN_OBJECT_SIZE];
if (!parr)
{
goto cleanup
;
return FALSE
;
}
make_c_mark_list (parr);
ret = TRUE;
cleanup:
if (!ret)
{
if (gc_lh_block_event.IsValid())
{
gc_lh_block_event.CloseEvent();
}
}
return ret;
return TRUE;
}
int gc_heap::check_for_ephemeral_alloc()
...
...
@@ -28466,7 +28444,6 @@ void gc_heap::kill_gc_thread()
// In the secodn stage, we have the Loader lock and only one thread is
// alive. Hence we do not need to kill gc thread.
background_gc_done_event.CloseEvent();
gc_lh_block_event.CloseEvent();
bgc_start_event.CloseEvent();
bgc_threads_timeout_cs.Destroy();
bgc_thread = 0;
...
...
@@ -34152,10 +34129,6 @@ void gc_heap::background_sweep()
//block concurrent allocation for large objects
dprintf (3, ("lh state: planning"));
if (gc_lh_block_event.IsValid())
{
gc_lh_block_event.Reset();
}
for (int i = 0; i <= (max_generation + 1); i++)
{
...
...
@@ -34519,11 +34492,6 @@ void gc_heap::background_sweep()
disable_preemptive (true);
if (gc_lh_block_event.IsValid())
{
gc_lh_block_event.Set();
}
add_saved_spinlock_info (true, me_release, mt_bgc_loh_sweep);
leave_spin_lock (&more_space_lock_loh);
src/coreclr/src/gc/gcee.cpp
浏览文件 @
579b1d93
...
...
@@ -397,17 +397,6 @@ uint32_t gc_heap::background_gc_wait (alloc_wait_reason awr, int time_out_ms)
return
dwRet
;
}
// Wait for background gc to finish sweeping large objects
void
gc_heap
::
background_gc_wait_lh
(
alloc_wait_reason
awr
)
{
dprintf
(
2
,
(
"Waiting end of background large sweep"
));
assert
(
gc_lh_block_event
.
IsValid
());
fire_alloc_wait_event_begin
(
awr
);
user_thread_wait
(
&
gc_lh_block_event
,
FALSE
);
fire_alloc_wait_event_end
(
awr
);
dprintf
(
2
,
(
"Waiting end of background large sweep is done"
));
}
#endif //BACKGROUND_GC
...
...
src/coreclr/src/gc/gcpriv.h
浏览文件 @
579b1d93
...
...
@@ -3113,8 +3113,6 @@ protected:
PER_HEAP_ISOLATED
void
fire_alloc_wait_event_end
(
alloc_wait_reason
awr
);
PER_HEAP
void
background_gc_wait_lh
(
alloc_wait_reason
awr
=
awr_ignored
);
PER_HEAP
uint32_t
background_gc_wait
(
alloc_wait_reason
awr
=
awr_ignored
,
int
time_out_ms
=
INFINITE
);
PER_HEAP_ISOLATED
void
start_c_gc
();
...
...
@@ -3665,9 +3663,6 @@ protected:
PER_HEAP_ISOLATED
GCEvent
ee_proceed_event
;
PER_HEAP
GCEvent
gc_lh_block_event
;
PER_HEAP_ISOLATED
bool
gc_can_use_concurrent
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录