summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2021-07-16 10:22:40 -0400
committerMarge Bot <ben+marge-bot@smart-cactus.org>2022-12-16 16:12:44 -0500
commit7356f8e043018678490a0721ff27e0d834e0fa7f (patch)
tree9a33a740b7d98416a2d7c7b2b1c2138c84271342
parented056bc366289493566671ff4922f131acf54864 (diff)
downloadhaskell-7356f8e043018678490a0721ff27e0d834e0fa7f.tar.gz
rts/ThreadPaused: Ordering fixes
-rw-r--r--rts/ThreadPaused.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/rts/ThreadPaused.c b/rts/ThreadPaused.c
index ffa1168a27..d350d3fbed 100644
--- a/rts/ThreadPaused.c
+++ b/rts/ThreadPaused.c
@@ -230,7 +230,7 @@ threadPaused(Capability *cap, StgTSO *tso)
case UPDATE_FRAME:
// If we've already marked this frame, then stop here.
- frame_info = frame->header.info;
+ frame_info = ACQUIRE_LOAD(&frame->header.info);
if (frame_info == (StgInfoTable *)&stg_marked_upd_frame_info) {
if (prev_was_update_frame) {
words_to_squeeze += sizeofW(StgUpdateFrame);
@@ -352,7 +352,7 @@ threadPaused(Capability *cap, StgTSO *tso)
OVERWRITING_CLOSURE_SIZE(bh, closure_sizeW_(bh, INFO_PTR_TO_STRUCT(bh_info)));
// The payload of the BLACKHOLE points to the TSO
- RELAXED_STORE(&((StgInd *)bh)->indirectee, (StgClosure *)tso);
+ ((StgInd *)bh)->indirectee = (StgClosure *)tso;
SET_INFO_RELEASE(bh,&stg_BLACKHOLE_info);
// .. and we need a write barrier, since we just mutated the closure: