summaryrefslogtreecommitdiffstats
path: root/sig_block.c
diff options
context:
space:
mode:
authormanuel <manuel@mausz.at>2013-02-04 00:08:53 +0100
committermanuel <manuel@mausz.at>2013-02-04 00:08:53 +0100
commit69aec538b456402170dc723af417ba5c05389c32 (patch)
treee6f34c543f17c6392447ea337b2e2868212424d1 /sig_block.c
downloadqmail-69aec538b456402170dc723af417ba5c05389c32.tar.gz
qmail-69aec538b456402170dc723af417ba5c05389c32.tar.bz2
qmail-69aec538b456402170dc723af417ba5c05389c32.zip
qmail 1.03 import
Diffstat (limited to 'sig_block.c')
-rw-r--r--sig_block.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/sig_block.c b/sig_block.c
new file mode 100644
index 0000000..c6b096a
--- /dev/null
+++ b/sig_block.c
@@ -0,0 +1,40 @@
1#include <signal.h>
2#include "sig.h"
3#include "hassgprm.h"
4
5void sig_block(sig)
6int sig;
7{
8#ifdef HASSIGPROCMASK
9 sigset_t ss;
10 sigemptyset(&ss);
11 sigaddset(&ss,sig);
12 sigprocmask(SIG_BLOCK,&ss,(sigset_t *) 0);
13#else
14 sigblock(1 << (sig - 1));
15#endif
16}
17
18void sig_unblock(sig)
19int sig;
20{
21#ifdef HASSIGPROCMASK
22 sigset_t ss;
23 sigemptyset(&ss);
24 sigaddset(&ss,sig);
25 sigprocmask(SIG_UNBLOCK,&ss,(sigset_t *) 0);
26#else
27 sigsetmask(sigsetmask(~0) & ~(1 << (sig - 1)));
28#endif
29}
30
31void sig_blocknone()
32{
33#ifdef HASSIGPROCMASK
34 sigset_t ss;
35 sigemptyset(&ss);
36 sigprocmask(SIG_SETMASK,&ss,(sigset_t *) 0);
37#else
38 sigsetmask(0);
39#endif
40}