Kernel: Disable big process lock for sys$yield()

This commit is contained in:
Brian Gianforcaro 2021-07-18 11:37:07 -07:00 committed by Gunnar Beutner
parent 5c10fb4007
commit 8f01a8b741
Notes: sideshowbarker 2024-07-18 08:42:27 +09:00
2 changed files with 3 additions and 3 deletions

View file

@ -43,7 +43,7 @@ enum class NeedsBigProcessLock {
// - VERIFY_NO_PROCESS_BIG_LOCK(this)
//
#define ENUMERATE_SYSCALLS(S) \
S(yield, NeedsBigProcessLock::Yes) \
S(yield, NeedsBigProcessLock::No) \
S(open, NeedsBigProcessLock::Yes) \
S(close, NeedsBigProcessLock::Yes) \
S(read, NeedsBigProcessLock::Yes) \

View file

@ -10,9 +10,9 @@ namespace Kernel {
KResultOr<FlatPtr> Process::sys$yield()
{
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this)
VERIFY_NO_PROCESS_BIG_LOCK(this);
REQUIRE_PROMISE(stdio);
Thread::current()->yield_and_release_relock_big_lock();
Thread::current()->yield_assuming_not_holding_big_lock();
return 0;
}