标签: linux linux-kernel signals
进程从信号处理程序中发送给自己的信号在大约20秒内无法传送,然后传送完毕。
可能的原因是什么?
我想知道一般可能的原因。
我正在查看的实际代码是here
答案 0 :(得分:2)
最有可能的是,你从一个信号处理程序中调用一个函数,你不能从该信号处理程序中调用它。
有关详细信息,请参阅man 7 signal:
man 7 signal
异步信号安全功能 信号处理函数必须非常小心,因为其他地方的处理可能会在某个任意点被中断 执行程序。 POSIX有 "安全功能的概念"。如果信号中断执行不安全的函数,并且处理程序调用不安全的函数, 然后程序的行为是 未定义。
异步信号安全功能
信号处理函数必须非常小心,因为其他地方的处理可能会在某个任意点被中断 执行程序。 POSIX有 "安全功能的概念"。如果信号中断执行不安全的函数,并且处理程序调用不安全的函数, 然后程序的行为是 未定义。