未验证 提交 c3096469 编写于 作者: P Peter Sollich 提交者: GitHub

Fix process background segment end (#53879)

Fix issue found in GetAllocatedBytesForCurrentThread with regions enabled.

The issue was traced to a region that had become empty in a background GC, but was still considered valid in the next ephemeral GC, so because there were cards set, we marked objects referenced from dead objects in the segment.

When a segment becomes completely empty in background GC, but is the start segment for the generation, we don't delete it, so we still need to reset heap_segment_allocated and decommit pages.
上级 968532c7
......@@ -38465,7 +38465,7 @@ void gc_heap::process_background_segment_end (heap_segment* seg,
heap_segment_mem (seg), (*delete_p ? "should" : "should not")));
}
else
if (!*delete_p)
{
dprintf (3, ("[h%d] seg %Ix alloc %Ix->%Ix",
heap_number, (size_t)seg,
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册