mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2025-07-22 19:45:46 +00:00
Merge pull request #2410 from Subv/sleepthread
Don't yield execution in SleepThread(0) if there are no available threads to run
This commit is contained in:
commit
961bb24cf9
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