From 5938cc40863911e0146d6023198e0b29c8316699 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Tue, 28 Jan 2025 17:17:59 +0200 Subject: [PATCH] Kernel: Support pselect sigmask --- kernel/kernel/Process.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/kernel/Process.cpp b/kernel/kernel/Process.cpp index 1d4b1aed..e6744a2a 100644 --- a/kernel/kernel/Process.cpp +++ b/kernel/kernel/Process.cpp @@ -1379,8 +1379,10 @@ namespace Kernel if (arguments->sigmask) TRY(validate_pointer_access(arguments->sigmask, sizeof(sigset_t), false)); + const auto old_sigmask = Thread::current().m_signal_block_mask; if (arguments->sigmask) - return BAN::Error::from_errno(ENOTSUP); + Thread::current().m_signal_block_mask = *arguments->sigmask; + BAN::ScopeGuard sigmask_restore([old_sigmask] { Thread::current().m_signal_block_mask = old_sigmask; }); uint64_t timedout_ns = SystemTimer::get().ns_since_boot(); if (arguments->timeout)