2012-10-16 60 views
0

我们有一个lib,它发送kill(pid, SIGUSR2)信号到上面提到的pid,它在我们的例子中运行大部分时间。该过程具有信号命令,其具有与该信号相关的信号处理。在linux中杀死和信号问题

我可以看到这个kill命令正在工作并且正在返回成功(0),但相应的信号处理程序被调用了一些时间,有些时候没有调用。

什么可能是这种不一致的原因?

+0

有任何意见和建议吗? – Santhosh

回答

1

我得到了解决这个问题,基本上其他一些代码阻止了SIGUSR2信号,所以我只是用sigprocmask(SIG_UNBLOCK, &set, NULL);解锁它,它工作。

它只是第一次发生的原因是它被阻塞的持续时间,基本上它们在解除阻塞之前阻塞了一段时间,并且此处的代码路径执行是第一次该过程在该时间内不能够选择信号。