From 72a24a0d3808eb8cc831028c17459531fdcb01f0 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Tue, 21 Apr 2026 00:20:37 +0300 Subject: [PATCH] Kernel: Reorder FUTEX_WAIT value and timeout check Return EAGAIN rather than ETIMEDOUT if value does not match at futex entry --- 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 5a1bf1ba..5c98b8d7 100644 --- a/kernel/kernel/Process.cpp +++ b/kernel/kernel/Process.cpp @@ -3215,6 +3215,9 @@ namespace Kernel return BAN::Error::from_errno(ENOSYS); } + if (op == FUTEX_WAIT && BAN::atomic_load(*addr) != val) + return BAN::Error::from_errno(EAGAIN); + uint64_t wake_time_ns = BAN::numeric_limits::max(); if (user_abstime != nullptr) @@ -3236,9 +3239,6 @@ namespace Kernel } } - if (op == FUTEX_WAIT && BAN::atomic_load(*addr) != val) - return BAN::Error::from_errno(EAGAIN); - futex_t* futex; {