summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Kling <kling@serenityos.org>2023-04-03 16:35:21 +0200
committerAndreas Kling <kling@serenityos.org>2023-04-04 10:33:42 +0200
commit6c02c493f104e866b8790df978a11972966a8d0a (patch)
treeba6903874a6a014f287c67c299236a910cb8c898
parentf0b5c585f27c269b12bde5553d71ba773797be04 (diff)
downloadserenity-6c02c493f104e866b8790df978a11972966a8d0a.zip
Kernel: Mark sys$sigtimedwait as not needing the big lock
Yet another syscall that only messes with the current thread.
-rw-r--r--Kernel/API/Syscall.h2
-rw-r--r--Kernel/Syscalls/sigaction.cpp2
2 files changed, 2 insertions, 2 deletions
diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h
index 65c8957bf8..20887f17c0 100644
--- a/Kernel/API/Syscall.h
+++ b/Kernel/API/Syscall.h
@@ -180,7 +180,7 @@ enum class NeedsBigProcessLock {
S(sigprocmask, NeedsBigProcessLock::No) \
S(sigreturn, NeedsBigProcessLock::No) \
S(sigsuspend, NeedsBigProcessLock::No) \
- S(sigtimedwait, NeedsBigProcessLock::Yes) \
+ S(sigtimedwait, NeedsBigProcessLock::No) \
S(socket, NeedsBigProcessLock::No) \
S(socketpair, NeedsBigProcessLock::No) \
S(stat, NeedsBigProcessLock::No) \
diff --git a/Kernel/Syscalls/sigaction.cpp b/Kernel/Syscalls/sigaction.cpp
index 5cf1296721..7071b92978 100644
--- a/Kernel/Syscalls/sigaction.cpp
+++ b/Kernel/Syscalls/sigaction.cpp
@@ -295,7 +295,7 @@ ErrorOr<FlatPtr> Process::sys$sigaltstack(Userspace<stack_t const*> user_ss, Use
// https://pubs.opengroup.org/onlinepubs/9699919799/functions/sigtimedwait.html
ErrorOr<FlatPtr> Process::sys$sigtimedwait(Userspace<sigset_t const*> set, Userspace<siginfo_t*> info, Userspace<timespec const*> timeout)
{
- VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this);
+ VERIFY_NO_PROCESS_BIG_LOCK(this);
TRY(require_promise(Pledge::sigaction));
sigset_t set_value;