当进程向自身发送信号时,如何涉及“其他未决的、未阻塞的信号”?

当进程向自身发送信号时,如何涉及“其他未决的、未阻塞的信号”?

Unix 环境高级编程说:

#include <signal.h>
int kill(pid_t pid, int signo);

...

如果调用导致kill为调用进程生成信号并且该信号未被阻止,signo或者 其他一些未决的、未阻塞的信号在kill返回之前传递给进程**。 (线程还会出现其他条件;有关详细信息,请参阅第 12.8 节。)

kill(pid, signo)只发送信号signo。当进程向自身发送信号时,如何涉及“其他未决的、未阻塞的信号”?

谢谢。

答案1

在调用kill返回之前,一些信号已传递。如果已经有一个信号等待从其他源传递(“待处理”),则可能会发生在调用开始kill和结束(“返回之前”)之间传递的信号是预先存在的信号你刚做的那个。

如果没有等待发送的信号,则signo您指定的信号将按照您的预期在该时间间隔内发送。

如果有一个挂起的信号,它或你的新信号是否被传递是未指定的,只保证至少其中一个被传递。

相关内容