diff options
author | Ben Gamari <ben@smart-cactus.org> | 2020-03-05 18:42:28 -0500 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2020-03-06 12:37:15 -0500 |
commit | 4da28b82dabf23d1afc2d386af5549122e01cdc2 (patch) | |
tree | beab93fc048bfd12bea7f8cfb70f70acb08253a7 | |
parent | 6745cc8b6a2b53ec6d774a30f1bb6477df754d51 (diff) | |
download | haskell-4da28b82dabf23d1afc2d386af5549122e01cdc2.tar.gz |
nonmoving: Eagerly flush all capabilities' update remembered sets
(cherry picked from commit 2fa79119570b358a4db61446396889b8260d7957)
-rw-r--r-- | rts/sm/GC.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/rts/sm/GC.c b/rts/sm/GC.c index 5c15b0ec9a..a9c9dffa0b 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; } |