diff options
-rw-r--r-- | rts/PrimOps.cmm | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/rts/PrimOps.cmm b/rts/PrimOps.cmm index 77b5d62cc1..da6b6f16d8 100644 --- a/rts/PrimOps.cmm +++ b/rts/PrimOps.cmm @@ -799,6 +799,12 @@ stg_addCFinalizzerToWeakzh ( W_ fptr, // finalizer return (0); } + // Write barrier for concurrent non-moving collector + if (nonmoving_write_barrier_enabled != 0) (likely: False) { + ccall updateRemembSetPushClosure(MyCapability() "ptr", + StgWeak_cfinalizers(w) "ptr", NULL); + } + StgCFinalizerList_link(c) = StgWeak_cfinalizers(w); StgWeak_cfinalizers(w) = c; |