[BACK]Return to mysig.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / plugin

Diff for /OpenXM/src/kan96xx/plugin/Attic/mysig.c between version 1.1 and 1.3

version 1.1, 2016/03/30 08:25:43 version 1.3, 2016/03/30 21:34:03
Line 1 
Line 1 
 /* $OpenXM$ */  /* $OpenXM: OpenXM/src/kan96xx/plugin/mysig.c,v 1.2 2016/03/30 09:20:40 takayama Exp $ */
 #include <stdio.h>  #include <stdio.h>
 #include <signal.h>  #include <signal.h>
 #include <unistd.h>  #include <unistd.h>
Line 6 
Line 6 
 #include <string.h>  #include <string.h>
 #include "mysig.h"  #include "mysig.h"
   
 int unblock_sigchild_sigint(void) {  /*
     sigset SIGINT, SIGCHLD, SIGUSR1
    */
   int unblock_signal(int sigset[]) {
   struct sigaction act;    struct sigaction act;
   sigset_t set;    sigset_t set;
   sigset_t oldset;    sigset_t oldset;
     int i;
   sigemptyset(&set);    sigemptyset(&set);
   sigaddset(&set,SIGINT);    for (i=0; sigset[i] > 0; i++) sigaddset(&set,sigset[i]);
   sigaddset(&set,SIGCHLD);  
   sigprocmask(SIG_UNBLOCK,&set,&oldset);    sigprocmask(SIG_UNBLOCK,&set,&oldset);
   return(0);    return(0);
 }  }
   /* Add (or) blocked signals, see sigprocmask */
   int block_signal(int sigset[]) {
     struct sigaction act;
     sigset_t set;
     sigset_t oldset;
     int i;
     sigemptyset(&set);
     for (i=0; sigset[i] > 0; i++) sigaddset(&set,sigset[i]);
     sigprocmask(SIG_BLOCK,&set,&oldset);
     return(0);
   }
   
 int set_sigchild(void (*handler)(void)) {  int set_signal(int sig,void (*handler)(int m)) {
   struct sigaction act;    struct sigaction act;
   struct sigaction oldact;    struct sigaction oldact;
   act.sa_handler=handler;    act.sa_handler=handler;
   act.sa_flags=0;    act.sa_flags=0;
   act.sa_flags |= SA_RESTART;    act.sa_flags |= SA_RESTART;
   sigemptyset(&act.sa_mask);    sigemptyset(&act.sa_mask);
   return(sigaction(SIGCHLD,&act,&oldact));    return(sigaction(sig,&act,&oldact));
   }
   int mysignal(int sig,void (*handler)(int m)) {
     return(set_signal(sig,handler));
 }  }
   
   

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.3

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>