summaryrefslogtreecommitdiff
path: root/Kernel
diff options
context:
space:
mode:
authorAndreas Kling <kling@serenityos.org>2023-04-03 16:26:11 +0200
committerAndreas Kling <kling@serenityos.org>2023-04-04 10:33:42 +0200
commitf0b5c585f27c269b12bde5553d71ba773797be04 (patch)
tree0e5e8259f6da3a33523e220cd107e46a8f55cde8 /Kernel
parente9fe0ecbae839989cf73171ca35d4070ac3fb8af (diff)
downloadserenity-f0b5c585f27c269b12bde5553d71ba773797be04.zip
Kernel: Mark sys$sigpending as not needing the big lock
Another one that only touches the current thread.
Diffstat (limited to 'Kernel')
-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 2c024fbb69..65c8957bf8 100644
--- a/Kernel/API/Syscall.h
+++ b/Kernel/API/Syscall.h
@@ -176,7 +176,7 @@ enum class NeedsBigProcessLock {
S(shutdown, NeedsBigProcessLock::No) \
S(sigaction, NeedsBigProcessLock::Yes) \
S(sigaltstack, NeedsBigProcessLock::Yes) \
- S(sigpending, NeedsBigProcessLock::Yes) \
+ S(sigpending, NeedsBigProcessLock::No) \
S(sigprocmask, NeedsBigProcessLock::No) \
S(sigreturn, NeedsBigProcessLock::No) \
S(sigsuspend, NeedsBigProcessLock::No) \
diff --git a/Kernel/Syscalls/sigaction.cpp b/Kernel/Syscalls/sigaction.cpp
index 4fa99237f7..5cf1296721 100644
--- a/Kernel/Syscalls/sigaction.cpp
+++ b/Kernel/Syscalls/sigaction.cpp
@@ -43,7 +43,7 @@ ErrorOr<FlatPtr> Process::sys$sigprocmask(int how, Userspace<sigset_t const*> se
ErrorOr<FlatPtr> Process::sys$sigpending(Userspace<sigset_t*> set)
{
- VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this);
+ VERIFY_NO_PROCESS_BIG_LOCK(this);
TRY(require_promise(Pledge::stdio));
auto pending_signals = Thread::current()->pending_signals();
TRY(copy_to_user(set, &pending_signals));