linux进程信号屏蔽问题

signal设置一个信号触发函数然后用sigprocmask屏蔽这个信号然后死循环检测变量(在信号处理函数中变量就是测试有没有进入处理函数)调用sigsuspend代码如下
1) signal(SIGIO,sig_io);
sigemptyset(&zeromask);
sigemptyset(&oldmask);
sigemptyset(&newmask);
2) sigaddset(&newmask,sigio);
3) sigprocmask(SIG_BLOCK,&newmask,&oldmask);
while(1){
while(queue==0) //进入处理函数后queue不等于0
4) sigsuspend(&zeromask);
}
3会不会影响1的响应如果影响那4是不是永远不能唤醒;

信号屏蔽是针对线程的,你这么做这个线程就收不到被屏蔽的信号了。其他的自行体味。