From 99ff8145044288a8a58c8028516903937ba3935c Mon Sep 17 00:00:00 2001
From: Ben Gamari <ben@smart-cactus.org>
Date: Thu, 5 Mar 2020 18:42:28 -0500
Subject: [PATCH] nonmoving: Eagerly flush all capabilities' update remembered
 sets

(cherry picked from commit 2fa79119570b358a4db61446396889b8260d7957)
---
 rts/sm/GC.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/rts/sm/GC.c b/rts/sm/GC.c
index 9cf9774687d8..0fa927f2adc9 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;
   }
 
-- 
GitLab