sig_block.c
changeset 0 068428edee47
equal deleted inserted replaced
-1:000000000000 0:068428edee47
       
     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 }