diff options
author | Ben Gamari <ben@smart-cactus.org> | 2023-02-13 14:49:52 -0500 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2023-03-02 12:31:12 -0500 |
commit | ac7bbf6486904e3365e90e17ff2af5c74e4dd393 (patch) | |
tree | 302a4c5fec7ec806d07ae0e991771095b633fbf4 | |
parent | 72087b1d3385f3cc51150bb17dbdaf4d88baeace (diff) | |
download | haskell-ac7bbf6486904e3365e90e17ff2af5c74e4dd393.tar.gz |
rts: Correctly align Capability allocations
Previously we failed to tell the C allocator that `Capability`s needed
to be aligned, resulting in #22965.
Fixes #22965.
Fixes #22975.
(cherry picked from commit 2cca72cd3e4de25fa81dc6fcc9979e613697a838)
-rw-r--r-- | rts/Capability.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/rts/Capability.c b/rts/Capability.c index f5514cbeee..7d5def832d 100644 --- a/rts/Capability.c +++ b/rts/Capability.c @@ -438,8 +438,9 @@ moreCapabilities (uint32_t from USED_IF_THREADS, uint32_t to USED_IF_THREADS) { for (uint32_t i = 0; i < to; i++) { if (i >= from) { - capabilities[i] = stgMallocBytes(sizeof(Capability), - "moreCapabilities"); + capabilities[i] = stgMallocAlignedBytes(sizeof(Capability), + CAPABILITY_ALIGNMENT, + "moreCapabilities"); initCapability(capabilities[i], i); } } |