summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2022-12-06 14:40:49 -0500
committerBen Gamari <ben@smart-cactus.org>2023-01-09 15:22:50 -0500
commit5cd834fcdd84bdb9316621f2b6f5e0c6e471d3d0 (patch)
treeed07cd4aeb67971649fe6b895bada14b2946437c
parent814a8545ae79c27f0e4454c729cdc5310581ec62 (diff)
downloadhaskell-5cd834fcdd84bdb9316621f2b6f5e0c6e471d3d0.tar.gz
rts: Fix non-atomic mutation of enabled_capabilities
-rw-r--r--rts/Schedule.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/rts/Schedule.c b/rts/Schedule.c
index a457629f79..94f756c5e4 100644
--- a/rts/Schedule.c
+++ b/rts/Schedule.c
@@ -2337,7 +2337,8 @@ setNumCapabilities (uint32_t new_n_capabilities USED_IF_THREADS)
// update n_capabilities before things start running
if (new_n_capabilities > n_capabilities) {
- RELAXED_STORE(&n_capabilities, enabled_capabilities = new_n_capabilities);
+ RELAXED_STORE(&n_capabilities, new_n_capabilities);
+ RELAXED_STORE(&enabled_capabilities, new_n_capabilities);
}
// We're done: release the original Capabilities