mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2025-07-22 13:55:46 +00:00
Kernel: Don't attempt to yield execution in SleepThread(0) if there are no available threads to run.
With this we avoid an useless temporary deschedule of the current thread.
This commit is contained in:
parent
35aea29a77
commit
6c6117868a
3 changed files with 14 additions and 0 deletions
|
@ -849,6 +849,11 @@ static ResultCode CancelTimer(Kernel::Handle handle) {
|
|||
static void SleepThread(s64 nanoseconds) {
|
||||
LOG_TRACE(Kernel_SVC, "called nanoseconds=%lld", nanoseconds);
|
||||
|
||||
// Don't attempt to yield execution if there are no available threads to run,
|
||||
// this way we avoid a useless reschedule to the idle thread.
|
||||
if (nanoseconds == 0 && !Kernel::HaveReadyThreads())
|
||||
return;
|
||||
|
||||
// Sleep current thread and check for next thread to schedule
|
||||
Kernel::WaitCurrentThread_Sleep();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue