ThreadPaused: Add barrer on updated thunk
authorBen Gamari <ben@smart-cactus.org>
Sun, 20 Oct 2019 14:41:34 +0000 (10:41 -0400)
committerBen Gamari <ben@smart-cactus.org>
Mon, 21 Oct 2019 15:43:54 +0000 (11:43 -0400)
rts/ThreadPaused.c

index 368f99a..83c621e 100644 (file)
@@ -15,6 +15,7 @@
 #include "RaiseAsync.h"
 #include "Trace.h"
 #include "Threads.h"
+#include "sm/NonMovingMark.h"
 
 #include <string.h> // for memmove()
 
@@ -243,6 +244,9 @@ threadPaused(Capability *cap, StgTSO *tso)
 
             bh = ((StgUpdateFrame *)frame)->updatee;
             bh_info = bh->header.info;
+            IF_NONMOVING_WRITE_BARRIER_ENABLED {
+                updateRemembSetPushClosure(cap, (StgClosure *) bh);
+            }
 
 #if defined(THREADED_RTS)
         retry: