From c6ed03f66a6ee87983b5c2ec316d73438f8be3d7 Mon Sep 17 00:00:00 2001 From: Peter Mitsis Date: Mon, 16 Dec 2024 13:52:51 -0800 Subject: [PATCH] kernel: futex: Allow for fast return on k_futex_wake() Updates k_futex_wake() to allow for a fast return path when no threads were waiting. Signed-off-by: Peter Mitsis --- kernel/futex.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/kernel/futex.c b/kernel/futex.c index 86acc0c74a0..c6e5e47e683 100644 --- a/kernel/futex.c +++ b/kernel/futex.c @@ -47,7 +47,11 @@ int z_impl_k_futex_wake(struct k_futex *futex, bool wake_all) } } while (thread && wake_all); - z_reschedule(&futex_data->lock, key); + if (woken == 0) { + k_spin_unlock(&futex_data->lock, key); + } else { + z_reschedule(&futex_data->lock, key); + } return woken; }