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