From 9502ad3ca3af68298a5ce95f917e6ee5d7b1aacc Mon Sep 17 00:00:00 2001
From: Ben Gamari <ben@smart-cactus.org>
Date: Thu, 22 Jun 2023 18:59:48 -0400
Subject: [PATCH] rts/Messages: Fix data race

---
 rts/Messages.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/rts/Messages.c b/rts/Messages.c
index 50df0ab41fef..730d81df9ce9 100644
--- a/rts/Messages.c
+++ b/rts/Messages.c
@@ -205,7 +205,7 @@ uint32_t messageBlackHole(Capability *cap, MessageBlackHole *msg)
         StgTSO *owner = (StgTSO*)p;
 
 #if defined(THREADED_RTS)
-        if (owner->cap != cap) {
+        if (RELAXED_LOAD(&owner->cap) != cap) {
             sendMessage(cap, owner->cap, (Message*)msg);
             debugTraceCap(DEBUG_sched, cap, "forwarding message to cap %d",
                           owner->cap->no);
@@ -275,7 +275,7 @@ uint32_t messageBlackHole(Capability *cap, MessageBlackHole *msg)
         ASSERT(owner != END_TSO_QUEUE);
 
 #if defined(THREADED_RTS)
-        if (owner->cap != cap) {
+        if (RELAXED_LOAD(&owner->cap) != cap) {
             sendMessage(cap, owner->cap, (Message*)msg);
             debugTraceCap(DEBUG_sched, cap, "forwarding message to cap %d",
                           owner->cap->no);
-- 
GitLab