Advertisement

信号类程序的同步机制

阅读量:

一、多进程环境下信号同步机制的实现:

以signal interrupt为例,探讨其在避免竞争条件方面的应用

接下来观察如下示例:

复制代码
 #include "csapp.h"

    
  
    
 void handler(int sig)
    
 {
    
     int olderrno = errno;
    
     sigset_t mask_all, prev_all;
    
     pid_t pid;
    
  
    
     Sigfillset(&mask_all);
    
     while((pid = waitpid(-1, NULL, 0)) > 0) {   /* Reap a zombie child */
    
     Sigprocmask(SIG_BLOCK, &mask_all, &prev_all);
    
     deletejob(pid);                         /* Delete the child from the job list */
    
     Sigprocmask(SIG_SETMASK, &prev_all, NULL);
    
     }
    
     if(errno != ECHILD)
    

全部评论 (0)

还没有任何评论哟~