summaryrefslogtreecommitdiff
path: root/rts
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2020-03-05 18:42:28 -0500
committerMarge Bot <ben+marge-bot@smart-cactus.org>2020-04-30 21:34:44 -0400
commit99ff8145044288a8a58c8028516903937ba3935c (patch)
treeebac52e49b46685f61ab486a9f2d30694b5c7c38 /rts
parent54dad3cf1e04f16ea00fb6a41b378e948c8ebf0f (diff)
downloadhaskell-99ff8145044288a8a58c8028516903937ba3935c.tar.gz
nonmoving: Eagerly flush all capabilities' update remembered sets
(cherry picked from commit 2fa79119570b358a4db61446396889b8260d7957)
Diffstat (limited to 'rts')
-rw-r--r--rts/sm/GC.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/rts/sm/GC.c b/rts/sm/GC.c
index 9cf9774687..0fa927f2ad 100644
--- a/rts/sm/GC.c
+++ b/rts/sm/GC.c
@@ -738,11 +738,13 @@ GarbageCollect (uint32_t collect_gen,
}
} // for all generations
- // Flush the update remembered set. See Note [Eager update remembered set
+ // Flush the update remembered sets. See Note [Eager update remembered set
// flushing] in NonMovingMark.c
if (RtsFlags.GcFlags.useNonmoving) {
RELEASE_SM_LOCK;
- nonmovingAddUpdRemSetBlocks(&gct->cap->upd_rem_set.queue);
+ for (n = 0; n < n_capabilities; n++) {
+ nonmovingAddUpdRemSetBlocks(&capabilities[n]->upd_rem_set.queue);
+ }
ACQUIRE_SM_LOCK;
}