在一个程序中,SIGCHLD被主线程阻止,然后
但是SIGCHLD仍然被sigwait()接收。
除了在创建线程之前从main()解锁SIGCHLD之外,有没有办法使SIGCHLD绕过sigwait()?我不希望sigwait()处理SIGCHILD。
谢谢,
答案 0 :(得分:1)
每个the spec允许此行为:
为进程生成的信号应该传递给进程中的其中一个线程,其中[thread]正在调用sigwait()函数,选择该信号 或 [哪个主题]没有阻止信号传递。
(强调补充。)
只需从等待线程的选择掩码中删除SIGCHLD,程序就可以执行您想要的操作。