Kernel: Mark sys$sigsuspend as not needing the big lock

This syscall is only concerned with the current thread.
This commit is contained in:
Andreas Kling 2023-04-03 16:19:12 +02:00
parent 374f4aeab9
commit d1fae8b09c
2 changed files with 2 additions and 2 deletions

View file

@ -179,7 +179,7 @@ enum class NeedsBigProcessLock {
S(sigpending, NeedsBigProcessLock::Yes) \
S(sigprocmask, NeedsBigProcessLock::Yes) \
S(sigreturn, NeedsBigProcessLock::No) \
S(sigsuspend, NeedsBigProcessLock::Yes) \
S(sigsuspend, NeedsBigProcessLock::No) \
S(sigtimedwait, NeedsBigProcessLock::Yes) \
S(socket, NeedsBigProcessLock::No) \
S(socketpair, NeedsBigProcessLock::No) \

View file

@ -326,7 +326,7 @@ ErrorOr<FlatPtr> Process::sys$sigtimedwait(Userspace<sigset_t const*> set, Users
// https://pubs.opengroup.org/onlinepubs/9699919799/functions/sigsuspend.html
ErrorOr<FlatPtr> Process::sys$sigsuspend(Userspace<sigset_t const*> mask)
{
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this);
VERIFY_NO_PROCESS_BIG_LOCK(this);
auto sigmask = TRY(copy_typed_from_user(mask));