信号未送达很长时间(约20秒)

时间:2015-06-04 10:55:12

标签: linux linux-kernel signals

进程从信号处理程序中发送给自己的信号在大约20秒内无法传送,然后传送完毕。

可能的原因是什么?

我想知道一般可能的原因。

我正在查看的实际代码是here

1 个答案:

答案 0 :(得分:2)

最有可能的是,你从一个信号处理程序中调用一个函数,你不能从该信号处理程序中调用它。

有关详细信息,请参阅man 7 signal

  

异步信号安全功能

     

信号处理函数必须非常小心,因为其他地方的处理可能会在某个任意点被中断   执行程序。 POSIX有          "安全功能的概念"。如果信号中断执行不安全的函数,并且处理程序调用不安全的函数,   然后程序的行为是          未定义。