Kernel: Release the big process lock while yielding in sys$yield()

Otherwise, a thread calling sched_yield() will prevent other threads
in that process from entering the kernel.
This commit is contained in:
Andreas Kling
2019-11-16 12:18:59 +01:00
parent 39e2b69153
commit 73d6a69b3f
3 changed files with 5 additions and 8 deletions

View File

@@ -3323,7 +3323,8 @@ int Process::sys$putch(char ch)
int Process::sys$yield()
{
return Scheduler::yield();
current->yield_without_holding_big_lock();
return 0;
}
int Process::sys$beep()