Kernel: Make sys$getppid() not take the big lock
This only needs to access the process PPID, which is protected by the "protected data" lock.
This commit is contained in:
parent
8ed06ad814
commit
18abba2c4d
Notes:
sideshowbarker
2024-07-17 08:06:17 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/18abba2c4d
2 changed files with 3 additions and 3 deletions
|
@ -92,7 +92,7 @@ enum class NeedsBigProcessLock {
|
|||
S(getpgid, NeedsBigProcessLock::Yes) \
|
||||
S(getpgrp, NeedsBigProcessLock::Yes) \
|
||||
S(getpid, NeedsBigProcessLock::No) \
|
||||
S(getppid, NeedsBigProcessLock::Yes) \
|
||||
S(getppid, NeedsBigProcessLock::No) \
|
||||
S(getrandom, NeedsBigProcessLock::No) \
|
||||
S(getresgid, NeedsBigProcessLock::No) \
|
||||
S(getresuid, NeedsBigProcessLock::No) \
|
||||
|
|
|
@ -18,9 +18,9 @@ ErrorOr<FlatPtr> Process::sys$getpid()
|
|||
|
||||
ErrorOr<FlatPtr> Process::sys$getppid()
|
||||
{
|
||||
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this);
|
||||
VERIFY_NO_PROCESS_BIG_LOCK(this);
|
||||
TRY(require_promise(Pledge::stdio));
|
||||
return with_protected_data([](auto& protected_data) { return protected_data.ppid.value(); });
|
||||
return ppid().value();
|
||||
}
|
||||
|
||||
ErrorOr<FlatPtr> Process::sys$get_process_name(Userspace<char*> buffer, size_t buffer_size)
|
||||
|
|
Loading…
Add table
Reference in a new issue