diff options
author | Ben Gamari <ben@smart-cactus.org> | 2022-10-22 21:15:24 +0000 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2022-10-22 21:15:50 +0000 |
commit | ddbba3ac974de9df4237558391a2ba86c00706f9 (patch) | |
tree | 0e389afd5fab796fa74c9ed117d717d6dce652e8 | |
parent | 0742ec37fd1bf417fc6f01c095a349e5842a56fa (diff) | |
download | haskell-ddbba3ac974de9df4237558391a2ba86c00706f9.tar.gz |
nonmoving: Fix tracking of FILLED_SWEEPING segments
Previously we only updated the state of the segment at the head of each
allocator's filled list.
-rw-r--r-- | rts/sm/NonMoving.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/rts/sm/NonMoving.c b/rts/sm/NonMoving.c index d47faa2b9f..41dc8bfe8c 100644 --- a/rts/sm/NonMoving.c +++ b/rts/sm/NonMoving.c @@ -1068,6 +1068,7 @@ static void nonmovingMark_(MarkQueue *mark_queue, StgWeak **dead_weaks, StgTSO * while (true) { // Set snapshot nonmovingSegmentInfo(seg)->next_free_snap = seg->next_free; + SET_SEGMENT_STATE(seg, FILLED_SWEEPING); n_filled++; if (seg->link) seg = seg->link; @@ -1075,7 +1076,6 @@ static void nonmovingMark_(MarkQueue *mark_queue, StgWeak **dead_weaks, StgTSO * break; } // add filled segments to sweep_list - SET_SEGMENT_STATE(seg, FILLED_SWEEPING); seg->link = nonmovingHeap.sweep_list; nonmovingHeap.sweep_list = filled; } |