1 /* vi: set sw=4 ts=4: */
5 * Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org>
6 * Copyright (C) 2006 Rob Landley
7 * Copyright (C) 2006 Denys Vlasenko
9 * Licensed under GPL version 2, see file LICENSE in this tarball for details.
14 void bb_signals(int sigs, void (*f)(int))
29 void bb_signals_recursive(int sigs, void (*f)(int))
35 memset(&sa, 0, sizeof(sa));
38 /*sigemptyset(&sa.sa_mask); - hope memset did it*/
43 sigaction(sig_no, &sa, NULL);
50 void sig_block(int sig)
55 sigprocmask(SIG_BLOCK, &ss, NULL);
58 void sig_unblock(int sig)
63 sigprocmask(SIG_UNBLOCK, &ss, NULL);
67 void sig_blocknone(void)
71 sigprocmask(SIG_SETMASK, &ss, NULL);
82 /* Assuming the sig is fatal */
83 void kill_myself_with_sig(int sig)
91 sigprocmask(SIG_UNBLOCK, &set, NULL);
93 _exit(1); /* Should not reach it */