1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 09:27:34 +00:00

Kernel: Disable big process lock for sys$clock_nanosleep

This syscall doesn't touch any intra-process shared resources and only
accesses the time via the atomic TimeManagement::current_time so there's
no need to hold the big lock.
This commit is contained in:
Idan Horowitz 2021-08-06 14:54:34 +03:00 committed by Andreas Kling
parent fbd848e6eb
commit 3ba2449058
2 changed files with 2 additions and 2 deletions

View file

@ -159,7 +159,7 @@ enum class NeedsBigProcessLock {
S(setkeymap, NeedsBigProcessLock::Yes) \ S(setkeymap, NeedsBigProcessLock::Yes) \
S(clock_gettime, NeedsBigProcessLock::No) \ S(clock_gettime, NeedsBigProcessLock::No) \
S(clock_settime, NeedsBigProcessLock::Yes) \ S(clock_settime, NeedsBigProcessLock::Yes) \
S(clock_nanosleep, NeedsBigProcessLock::Yes) \ S(clock_nanosleep, NeedsBigProcessLock::No) \
S(join_thread, NeedsBigProcessLock::Yes) \ S(join_thread, NeedsBigProcessLock::Yes) \
S(module_load, NeedsBigProcessLock::Yes) \ S(module_load, NeedsBigProcessLock::Yes) \
S(module_unload, NeedsBigProcessLock::Yes) \ S(module_unload, NeedsBigProcessLock::Yes) \

View file

@ -49,7 +49,7 @@ KResultOr<FlatPtr> Process::sys$clock_settime(clockid_t clock_id, Userspace<cons
KResultOr<FlatPtr> Process::sys$clock_nanosleep(Userspace<const Syscall::SC_clock_nanosleep_params*> user_params) KResultOr<FlatPtr> Process::sys$clock_nanosleep(Userspace<const Syscall::SC_clock_nanosleep_params*> user_params)
{ {
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); VERIFY_NO_PROCESS_BIG_LOCK(this);
REQUIRE_PROMISE(stdio); REQUIRE_PROMISE(stdio);
Syscall::SC_clock_nanosleep_params params; Syscall::SC_clock_nanosleep_params params;