summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2020-12-21 15:02:59 -0500
committerBen Gamari <ben@smart-cactus.org>2020-12-21 15:02:59 -0500
commitdcf56892e9a2d4f2ceb9a219d2a4423d4c6a958a (patch)
treed64cae9ab08db322f8fca89af34f79b0fe854dd4
parente26c9a94b438eef56a007d4b78950267c4b36163 (diff)
downloadhaskell-wip/gc/parallel-marking.tar.gz
nonmoving: STM fix?wip/gc/parallel-marking
This needs an audit.
-rw-r--r--rts/STM.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/rts/STM.c b/rts/STM.c
index d86534eba2..81dab19fb9 100644
--- a/rts/STM.c
+++ b/rts/STM.c
@@ -579,6 +579,9 @@ static void remove_watch_queue_entries_for_trec(Capability *cap,
pq -> next_queue_entry = nq;
} else {
ASSERT(SEQ_CST_LOAD(&s->first_watch_queue_entry) == q);
+ IF_NONMOVING_WRITE_BARRIER_ENABLED {
+ updateRemembSetPushClosure(&cap->upd_rem_set, s -> first_watch_queue_entry);
+ }
SEQ_CST_STORE(&s->first_watch_queue_entry, nq);
dirty_TVAR(cap, s, (StgClosure *) q); // we modified first_watch_queue_entry
}