From 1f6559a5cfa7aef26c0b09aa9d0c2982f4c567a5 Mon Sep 17 00:00:00 2001 From: Robert O'Callahan Date: Wed, 8 Apr 2026 21:56:36 +0000 Subject: [PATCH] Avoid racing accesses to shards[0] in ShardedHashtable parallel destruction --- kernel/threading.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/threading.h b/kernel/threading.h index a041def2c..0008f97bb 100644 --- a/kernel/threading.h +++ b/kernel/threading.h @@ -567,7 +567,7 @@ public: // Call this for each shard to implement parallel destruction. For very large `ShardedHashtable`s, // deleting all elements of all shards on a single thread can be a performance bottleneck. void clear(const ThreadIndex &shard) { - AccumulatedValueEquality equality = shards[0].key_eq(); + AccumulatedValueEquality equality = shards[shard.thread_num].key_eq(); shards[shard.thread_num] = Shard(0, AccumulatedValueHashOp(), equality); } private: