Linux 如果我安装了SIGCHLD处理程序,特定pid上的*阻塞*等待是否仍然有效?

Linux 如果我安装了SIGCHLD处理程序,特定pid上的*阻塞*等待是否仍然有效?,linux,macos,perl,unix,Linux,Macos,Perl,Unix,我有一些东西使用一堆异步分叉来完成它的工作(在工具箱下面) 在特定的代码区域中,我进行分叉,然后对子进程执行阻塞等待 SIGCHLD处理程序是否会在阻塞等待看到信号之前吞掉该信号,使我可能处于挂起状态,或者等待总是会得到一些返回?ASIGCHLD处理程序在子进程退出的事件边缘被触发。对waitpid()的阻塞调用将等待特定子进程的条件(级别)不再存在 当进程退出时,将传递一个SIGCHLD,其处理程序将正常执行。如果该进程上存在waitpid()阻塞,则无论是否存在信号处理程序,它都将正常返回

我有一些东西使用一堆异步分叉来完成它的工作(在工具箱下面)

在特定的代码区域中,我进行分叉,然后对子进程执行阻塞等待


SIGCHLD处理程序是否会在阻塞等待看到信号之前吞掉该信号,使我可能处于挂起状态,或者等待总是会得到一些返回?

A
SIGCHLD
处理程序在子进程退出的事件边缘被触发。对
waitpid()
的阻塞调用将等待特定子进程的条件(级别)不再存在

当进程退出时,将传递一个
SIGCHLD
,其处理程序将正常执行。如果该进程上存在
waitpid()
阻塞,则无论是否存在信号处理程序,它都将正常返回