chiark / gitweb /
Merge branches 'idx/verh' and 'idx/qmqpc'
[qmail] / sig_block.c
1 #include <signal.h>
2 #include "sig.h"
3 #include "hassgprm.h"
4
5 void sig_block(sig)
6 int 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
18 void sig_unblock(sig)
19 int 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
31 void 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 }