summaryrefslogtreecommitdiff
path: root/src/libstddjb/sig_catch.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstddjb/sig_catch.c')
-rw-r--r--src/libstddjb/sig_catch.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/src/libstddjb/sig_catch.c b/src/libstddjb/sig_catch.c
index a11e317..1c106a0 100644
--- a/src/libstddjb/sig_catch.c
+++ b/src/libstddjb/sig_catch.c
@@ -3,7 +3,6 @@
/* MT-unsafe */
#include <skalibs/nonposix.h>
-#include <skalibs/bsdsnowflake.h>
#include <signal.h>
#include <errno.h>
@@ -13,8 +12,8 @@
#include <skalibs/nsig.h>
/*
- BSD fails sigaction() with EINVAL on non-catchable signals, whereas
- every reasonable OS succeeds and simply ignores the signal handler.
+ We don't want to fail on non-catchable signals,
+ even if sigaction() does.
*/
int sig_catch (int sig, sig_func_ref f)
@@ -22,8 +21,5 @@ int sig_catch (int sig, sig_func_ref f)
struct sigaction action = { .sa_handler = f, .sa_flags = SA_RESTART | SA_NOCLDSTOP } ;
sigfillset(&action.sa_mask) ;
return sigaction(sig, &action, 0) >= 0
-#ifdef SKALIBS_BSD_SUCKS
- || (errno == EINVAL && sig >= 1 && sig <= NSIG)
-#endif
- ;
+ || (errno == EINVAL && sig >= 1 && sig < SKALIBS_NSIG) ;
}