mirror of
https://github.com/RGBCube/serenity
synced 2025-05-17 21:05:07 +00:00
Kernel: Disable big process lock for sys$gettimeofday
This syscall doesn't touch any intra-process shared resources and only accesses the time via the atomic TimeManagement::now so there's no need to hold the big lock.
This commit is contained in:
parent
3ba2449058
commit
d40038a04f
2 changed files with 2 additions and 2 deletions
|
@ -64,7 +64,7 @@ enum class NeedsBigProcessLock {
|
||||||
S(munmap, NeedsBigProcessLock::Yes) \
|
S(munmap, NeedsBigProcessLock::Yes) \
|
||||||
S(get_dir_entries, NeedsBigProcessLock::Yes) \
|
S(get_dir_entries, NeedsBigProcessLock::Yes) \
|
||||||
S(getcwd, NeedsBigProcessLock::Yes) \
|
S(getcwd, NeedsBigProcessLock::Yes) \
|
||||||
S(gettimeofday, NeedsBigProcessLock::Yes) \
|
S(gettimeofday, NeedsBigProcessLock::No) \
|
||||||
S(gethostname, NeedsBigProcessLock::No) \
|
S(gethostname, NeedsBigProcessLock::No) \
|
||||||
S(sethostname, NeedsBigProcessLock::No) \
|
S(sethostname, NeedsBigProcessLock::No) \
|
||||||
S(chdir, NeedsBigProcessLock::Yes) \
|
S(chdir, NeedsBigProcessLock::Yes) \
|
||||||
|
|
|
@ -118,7 +118,7 @@ KResultOr<FlatPtr> Process::sys$adjtime(Userspace<const timeval*> user_delta, Us
|
||||||
|
|
||||||
KResultOr<FlatPtr> Process::sys$gettimeofday(Userspace<timeval*> user_tv)
|
KResultOr<FlatPtr> Process::sys$gettimeofday(Userspace<timeval*> user_tv)
|
||||||
{
|
{
|
||||||
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this);
|
VERIFY_NO_PROCESS_BIG_LOCK(this);
|
||||||
REQUIRE_PROMISE(stdio);
|
REQUIRE_PROMISE(stdio);
|
||||||
auto tv = kgettimeofday().to_timeval();
|
auto tv = kgettimeofday().to_timeval();
|
||||||
if (!copy_to_user(user_tv, &tv))
|
if (!copy_to_user(user_tv, &tv))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue