diff options
author | Laurent Bercot <ska-skaware@skarnet.org> | 2021-07-28 23:45:20 +0000 |
---|---|---|
committer | Laurent Bercot <ska@appnovation.com> | 2021-07-28 23:45:20 +0000 |
commit | 9592bfd0dda7c575de07bce2c7a81b8432d845a4 (patch) | |
tree | 57c66c3e0dfeb63cfd3ebfef18e30a2145ae3f88 /src/libstddjb/sig_catch.c | |
parent | c15bccec3fd551583ff838673ba284ee6c7e788a (diff) | |
download | skalibs-9592bfd0dda7c575de07bce2c7a81b8432d845a4.tar.xz |
Huge incompatible changes.
- Obsolete skalibs/environ.h and skalibs/getpeereid.h removed.
- rc4 and md5 removed.
- All *_t types renamed to avoid treading on POSIX namespace.
- subgetopt() renamed to lgetopt().
- signal functions reworked; skasigaction removed; sig_stack removed
- Various functions removed: skaoffsetof(), selfpipe_untrap()
- New posixplz function: munmap_void.
Signed-off-by: Laurent Bercot <ska@appnovation.com>
Diffstat (limited to 'src/libstddjb/sig_catch.c')
-rw-r--r-- | src/libstddjb/sig_catch.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/libstddjb/sig_catch.c b/src/libstddjb/sig_catch.c index d0a72df..5195d4b 100644 --- a/src/libstddjb/sig_catch.c +++ b/src/libstddjb/sig_catch.c @@ -2,10 +2,14 @@ /* MT-unsafe */ +#include <signal.h> + +#include <skalibs/functypes.h> #include <skalibs/sig.h> -int sig_catch (int sig, skasighandler_t_ref f) +int sig_catch (int sig, sig_func_ref f) { - struct skasigaction ssa = { f, SKASA_MASKALL | SKASA_NOCLDSTOP } ; - return sig_catcha(sig, &ssa) ; + struct sigaction action = { .sa_handler = f, .sa_flags = SA_RESTART | SA_NOCLDSTOP } ; + sigfillset(&action.sa_mask) ; + return sigaction(sig, &action, 0) >= 0 ; } |