summaryrefslogtreecommitdiff
path: root/Kernel
diff options
context:
space:
mode:
authorAndreas Kling <kling@serenityos.org>2023-04-03 16:24:01 +0200
committerAndreas Kling <kling@serenityos.org>2023-04-04 10:33:42 +0200
commite9fe0ecbae839989cf73171ca35d4070ac3fb8af (patch)
tree97c029e46d4aead79706b863863a1cee8a81ca0a /Kernel
parentd1fae8b09c837573e739c93ef2f2e6e805e138fd (diff)
downloadserenity-e9fe0ecbae839989cf73171ca35d4070ac3fb8af.zip
Kernel: Mark sys$sigprocmask as not needing the big lock
Another one that only messes with 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 edb9f22ec8..2c024fbb69 100644
--- a/Kernel/API/Syscall.h
+++ b/Kernel/API/Syscall.h
@@ -177,7 +177,7 @@ enum class NeedsBigProcessLock {
S(sigaction, NeedsBigProcessLock::Yes) \
S(sigaltstack, NeedsBigProcessLock::Yes) \
S(sigpending, NeedsBigProcessLock::Yes) \
- S(sigprocmask, NeedsBigProcessLock::Yes) \
+ S(sigprocmask, NeedsBigProcessLock::No) \
S(sigreturn, NeedsBigProcessLock::No) \
S(sigsuspend, NeedsBigProcessLock::No) \
S(sigtimedwait, NeedsBigProcessLock::Yes) \
diff --git a/Kernel/Syscalls/sigaction.cpp b/Kernel/Syscalls/sigaction.cpp
index 2665f93848..4fa99237f7 100644
--- a/Kernel/Syscalls/sigaction.cpp
+++ b/Kernel/Syscalls/sigaction.cpp
@@ -13,7 +13,7 @@ namespace Kernel {
ErrorOr<FlatPtr> Process::sys$sigprocmask(int how, Userspace<sigset_t const*> set, Userspace<sigset_t*> old_set)
{
- VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this);
+ VERIFY_NO_PROCESS_BIG_LOCK(this);
TRY(require_promise(Pledge::sigaction));
auto* current_thread = Thread::current();
u32 previous_signal_mask;