summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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
}