设为首页 加入收藏

TOP

Linux网络编程--信号阻塞与屏蔽(block,unblock)(二)
2015-11-10 13:45:28 来源: 作者: 【 】 浏览:8
Tags:Linux 网络编程 信号 阻塞 屏蔽 block unblock
void){
? ? sigset_t? ? newmask;
? ? pthread_t? tid;
? ? int? ? ? ? signo;


? ? //signal action
? ? signal(SIGUSR1, sig_usr1);
? ? signal(SIGUSR2, sig_usr2);
? ? signal(SIGHUP , sig_hup);


? ? if(pthread_create(&tid, NULL, thread_control_signal, NULL) < 0){
? ? ? ? perror("create pthread failed");
? ? ? ? return -1;
? ? }


?//main thread block sigusr1
? ? sigemptyset(&newmask);
? ? sigaddset(&newmask, SIGUSR1);
? ? if(pthread_sigmask(SIG_BLOCK, &newmask, NULL) < 0){
? ? ? ? perror("sigprocmask error");
? ? }


? ? //main thread wait sighup
? ? sigemptyset(&newmask);
? ? sigaddset(&newmask, SIGHUP);
? ? if(sigwait(&newmask, &signo) < 0){
? ? ? ? perror("sigwait failed");
? ? ? ? return -1;
? ? }
? ? fprintf(stdout, "main|get SIGHUP\n");


? ? pthread_kill(tid, SIGUSR2);
? ? pthread_kill(tid, SIGUSR2);
? ? pthread_join(tid, NULL);


? ? fprintf(stdout, "main|exit\n");
? ? return 0;
}


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux网络编程--非阻塞编程 下一篇Android 实现RippleEffect水波纹..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: