From 60de6a65f5a0888d1aa1ad3c3f46f0496ed7a6df Mon Sep 17 00:00:00 2001 From: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com> Date: Wed, 2 Aug 2023 18:47:53 +0300 Subject: [PATCH] Kernel: Don't idle on svcSleepThread(0) --- src/core/kernel/threads.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/core/kernel/threads.cpp b/src/core/kernel/threads.cpp index 8d4c477b..7d3d9f14 100644 --- a/src/core/kernel/threads.cpp +++ b/src/core/kernel/threads.cpp @@ -348,7 +348,11 @@ void Kernel::sleepThread(s64 ns) { t.status = ThreadStatus::Ready; if (nextThreadIndex.has_value()) { - switchThread(nextThreadIndex.value()); + const auto index = nextThreadIndex.value(); + + if (index != idleThreadIndex) { + switchThread(index); + } } } else { // If we're sleeping for >= 0 ns Thread& t = threads[currentThreadIndex];