From: Lennart Poettering Date: Wed, 30 Oct 2019 16:37:00 +0000 (+0100) Subject: signal-util: add new helper signal_is_blocked() X-Git-Tag: v245-rc1~315^2~7 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=90b15e18eef423b930d6d4694e67c37c82037d25;p=thirdparty%2Fsystemd.git signal-util: add new helper signal_is_blocked() --- 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);