summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2023-02-13 14:49:52 -0500
committerBen Gamari <ben@smart-cactus.org>2023-03-02 12:31:12 -0500
commitac7bbf6486904e3365e90e17ff2af5c74e4dd393 (patch)
tree302a4c5fec7ec806d07ae0e991771095b633fbf4
parent72087b1d3385f3cc51150bb17dbdaf4d88baeace (diff)
downloadhaskell-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.c5
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);
}
}