mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-30 00:31:14 +00:00
Kernel: Disable big process lock for sys$yield()
This commit is contained in:
parent
5c10fb4007
commit
8f01a8b741
Notes:
sideshowbarker
2024-07-18 08:42:27 +09:00
Author: https://github.com/bgianfo Commit: https://github.com/SerenityOS/serenity/commit/8f01a8b741d Pull-request: https://github.com/SerenityOS/serenity/pull/8864 Reviewed-by: https://github.com/IdanHo Reviewed-by: https://github.com/gunnarbeutner ✅ Reviewed-by: https://github.com/tomuta ✅
|
@ -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) \
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue