summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2022-11-10 19:47:53 -0500
committerBen Gamari <ben@smart-cactus.org>2022-12-21 15:46:41 -0500
commit377697ea4d44023e0c690d722e1e27f03629227f (patch)
tree413ee12cb19aae0a555f25fdd5f032e0707371bb
parent83c2876d3783ac2f4ea969c9e01d15198aea03a3 (diff)
downloadhaskell-377697ea4d44023e0c690d722e1e27f03629227f.tar.gz
nonmoving: Make segment state updates atomic
-rw-r--r--rts/sm/NonMoving.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/rts/sm/NonMoving.h b/rts/sm/NonMoving.h
index 1d40ef726e..2700f8a8f8 100644
--- a/rts/sm/NonMoving.h
+++ b/rts/sm/NonMoving.h
@@ -44,7 +44,7 @@ enum NonmovingSegmentState {
FREE, CURRENT, ACTIVE, FILLED, FILLED_SWEEPING
};
-#define SET_SEGMENT_STATE(seg, st) (seg)->state = (st)
+#define SET_SEGMENT_STATE(seg, st) RELAXED_STORE(&(seg)->state, (st))
#else
#define SET_SEGMENT_STATE(_seg,_st)
#endif