【发布时间】:2011-02-24 00:15:20
【问题描述】:
我使用 sigprocmask 如下:
void mask(){
sigset_t new_set,old_set;
sigemptyset(&new_set);
sigaddset(&new_set,SIGALRM);
sigprocmask(SIG_BLOCK, &new_set, &old_set);
}
令我惊讶的是,一个打印大列表的函数以某种方式被信号中断,即使我在它的开头调用了 mask()。 看起来好像 mask 失败了,因为我的函数没有调用任何其他函数,因此在它的运行中不会发生 unmask()。 什么会导致 sigprocmask 失败?
【问题讨论】:
-
使用 strace 检查是否有其他内容正在取消屏蔽?
标签: linux sigprocmask