From 90b15e18eef423b930d6d4694e67c37c82037d25 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 30 Oct 2019 17:37:00 +0100 Subject: [PATCH] signal-util: add new helper signal_is_blocked() --- src/basic/signal-util.c | 15 +++++++++++++++ src/basic/signal-util.h | 2 ++ 2 files changed, 17 insertions(+) diff --git a/src/basic/signal-util.c b/src/basic/signal-util.c index bfb83419c98..cb59f6ca0f2 100644 --- a/src/basic/signal-util.c +++ b/src/basic/signal-util.c @@ -287,3 +287,18 @@ int signal_from_string(const char *s) { void nop_signal_handler(int sig) { /* nothing here */ } + +int signal_is_blocked(int sig) { + sigset_t ss; + int r; + + r = pthread_sigmask(SIG_SETMASK, NULL, &ss); + if (r != 0) + return -r; + + r = sigismember(&ss, sig); + if (r < 0) + return -errno; + + return r; +} diff --git a/src/basic/signal-util.h b/src/basic/signal-util.h index 92f2804cd21..3909ee341da 100644 --- a/src/basic/signal-util.h +++ b/src/basic/signal-util.h @@ -41,3 +41,5 @@ static inline const char* signal_to_string_with_check(int n) { return signal_to_string(n); } + +int signal_is_blocked(int sig); -- 2.47.3