From 311a68160ce3716cc8a939d9af238d149f11862b Mon Sep 17 00:00:00 2001 From: Bananymous Date: Mon, 12 Jan 2026 23:49:18 +0200 Subject: [PATCH] Kernel: Don't delete futex objects after they are not used anymore Hashmap insertions and deletions made futex very slow to use. When running SuperTuxKart, ~15% of cpu time was spent doing these. Never freeing objects is not great either but at least the performance is usable now :) --- kernel/kernel/Process.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/kernel/Process.cpp b/kernel/kernel/Process.cpp index a833ba9d..7de519ca 100644 --- a/kernel/kernel/Process.cpp +++ b/kernel/kernel/Process.cpp @@ -3160,9 +3160,9 @@ namespace Kernel futex_t* const futex = it->value.ptr(); futex->waiters++; - BAN::ScopeGuard _([&futexes, futex, paddr] { - if (--futex->waiters == 0) - futexes.remove(paddr); + BAN::ScopeGuard _([futex] { + // TODO: Lazily deallocate unused futex objects at some point (?) + futex->waiters--; }); for (;;)