diff options
author | Ubuntu <ubuntu@ip-172-31-25-209.ec2.internal> | 2023-04-18 10:53:15 +0000 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2023-04-24 06:04:18 -0400 |
commit | b20f33cf3230c4b49f5b012312c7a76ea68c63bd (patch) | |
tree | 3ab020da406e9388ba9ffe0ccf9a0422fb8a003c | |
parent | 59793d312cc0a8d4cc2bc9544eb14db49b20d3a7 (diff) | |
download | haskell-b20f33cf3230c4b49f5b012312c7a76ea68c63bd.tar.gz |
Add acquire fence in WHITEHOLE
-rw-r--r-- | rts/StgMiscClosures.cmm | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/rts/StgMiscClosures.cmm b/rts/StgMiscClosures.cmm index 201e76d58a..dff15133b9 100644 --- a/rts/StgMiscClosures.cmm +++ b/rts/StgMiscClosures.cmm @@ -658,7 +658,7 @@ INFO_TABLE(stg_WHITEHOLE, 0,0, WHITEHOLE, "WHITEHOLE", "WHITEHOLE") i = 0; loop: // spin until the WHITEHOLE is updated - info = StgHeader_info(node); + info = %relaxed StgHeader_info(node); if (info == stg_WHITEHOLE_info) { #if defined(PROF_SPIN) W_[whitehole_lockClosure_spin] = @@ -677,6 +677,7 @@ loop: // defined in CMM. goto loop; } + ACQUIRE_FENCE; jump %ENTRY_CODE(info) (node); #else ccall barf("WHITEHOLE object (%p) entered!", R1) never returns; |