summaryrefslogtreecommitdiff
path: root/src/libstddjb/sig_catch.c
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2021-07-28 23:45:20 +0000
committerLaurent Bercot <ska@appnovation.com>2021-07-28 23:45:20 +0000
commit9592bfd0dda7c575de07bce2c7a81b8432d845a4 (patch)
tree57c66c3e0dfeb63cfd3ebfef18e30a2145ae3f88 /src/libstddjb/sig_catch.c
parentc15bccec3fd551583ff838673ba284ee6c7e788a (diff)
downloadskalibs-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.c10
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 ;
}