diff options
author | Ben Gamari <ben@smart-cactus.org> | 2022-12-06 14:40:49 -0500 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2023-01-09 15:22:50 -0500 |
commit | 5cd834fcdd84bdb9316621f2b6f5e0c6e471d3d0 (patch) | |
tree | ed07cd4aeb67971649fe6b895bada14b2946437c | |
parent | 814a8545ae79c27f0e4454c729cdc5310581ec62 (diff) | |
download | haskell-5cd834fcdd84bdb9316621f2b6f5e0c6e471d3d0.tar.gz |
rts: Fix non-atomic mutation of enabled_capabilities
-rw-r--r-- | rts/Schedule.c | 3 |
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 |