Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
dotNET Platform
runtime
提交
e94c2368
R
runtime
项目概览
dotNET Platform
/
runtime
12 个月 前同步成功
通知
1
Star
1
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,发现更多精彩内容 >>
未验证
提交
e94c2368
编写于
8月 26, 2022
作者:
A
Andrew Au
提交者:
GitHub
8月 26, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Always maintain committed_by_oh when heap_hard_limit is set (#74624)
上级
022f7646
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
11 addition
and
11 deletion
+11
-11
src/coreclr/gc/gc.cpp
src/coreclr/gc/gc.cpp
+11
-11
未找到文件。
src/coreclr/gc/gc.cpp
浏览文件 @
e94c2368
...
...
@@ -6964,11 +6964,11 @@ bool gc_heap::virtual_commit (void* address, size_t size, int bucket, int h_numb
check_commit_cs.Enter();
committed_by_oh[bucket] -= size;
#if defined(_DEBUG) && defined(MULTIPLE_HEAPS)
if (bucket < total_oh_count)
{
assert (g_heaps[h_number]->committed_by_oh_per_heap[bucket] >= size);
g_heaps[h_number]->committed_by_oh_per_heap[bucket] -= size;
}
if (bucket < total_oh_count)
{
assert (g_heaps[h_number]->committed_by_oh_per_heap[bucket] >= size);
g_heaps[h_number]->committed_by_oh_per_heap[bucket] -= size;
}
#endif // _DEBUG && MULTIPLE_HEAPS
dprintf (1, ("commit failed, updating %Id to %Id",
current_total_committed, (current_total_committed - size)));
...
...
@@ -11229,7 +11229,7 @@ void gc_heap::return_free_region (heap_segment* region)
{
gc_oh_num oh = heap_segment_oh (region);
dprintf(3, ("commit-accounting: from %d to free [%Ix, %Ix) for heap %d", oh, get_region_start (region), heap_segment_committed (region), heap_number));
if (heap_hard_limit
_oh[soh]
)
if (heap_hard_limit)
{
size_t committed = heap_segment_committed (region) - get_region_start (region);
if (committed > 0)
...
...
@@ -11315,7 +11315,7 @@ heap_segment* gc_heap::get_free_region (int gen_number, size_t size)
gc_oh_num oh = gen_to_oh (gen_number);
dprintf(3, ("commit-accounting: from free to %d [%Ix, %Ix) for heap %d", oh, get_region_start (region), heap_segment_committed (region), heap_number));
if (heap_hard_limit
_oh[soh]
)
if (heap_hard_limit)
{
size_t committed = heap_segment_committed (region) - get_region_start (region);
if (committed > 0)
...
...
@@ -22907,7 +22907,7 @@ heap_segment* gc_heap::unlink_first_rw_region (int gen_idx)
dprintf (REGIONS_LOG, ("unlink_first_rw_region on heap: %d gen: %d region: %Ix", heap_number, gen_idx, heap_segment_mem (region)));
#if defined(_DEBUG) && defined(HOST_64BIT)
if (heap_hard_limit
_oh[soh]
)
if (heap_hard_limit)
{
int old_oh = heap_segment_oh (region);
int old_heap = heap_segment_heap (region)->heap_number;
...
...
@@ -22944,7 +22944,7 @@ void gc_heap::thread_rw_region_front (int gen_idx, heap_segment* region)
dprintf (REGIONS_LOG, ("thread_rw_region_front on heap: %d gen: %d region: %Ix", heap_number, gen_idx, heap_segment_mem (region)));
#if defined(_DEBUG) && defined(HOST_64BIT)
if (heap_hard_limit
_oh[soh]
)
if (heap_hard_limit)
{
int new_oh = gen_to_oh (gen_idx);
int new_heap = this->heap_number;
...
...
@@ -30474,7 +30474,7 @@ void gc_heap::plan_phase (int condemned_gen_number)
#endif //FEATURE_EVENT_TRACE
#if defined(_DEBUG) && defined(USE_REGIONS)
if (heap_hard_limit
_oh[soh]
)
if (heap_hard_limit)
{
size_t committed = 0;
for (int i = 0; i < total_generation_count; i++)
...
...
@@ -43969,7 +43969,7 @@ void gc_heap::verify_regions (bool can_verify_gen_num, bool concurrent_p)
if (can_verify_gen_num &&
can_verify_tail &&
(i >= max_generation) &&
(heap_hard_limit_oh[soh] > 0)
)
heap_hard_limit
)
{
int oh = i - max_generation;
if (oh == soh)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录