【发布时间】:2012-10-09 16:02:31
【问题描述】:
我在处理 SIGABRT 信号的信号处理程序方面遇到问题。在处理 SIGABRT 时,信号处理程序无法调度。因此,在有人收到 SIGABRT 后,其他线程无法运行。这会导致程序不正常的崩溃。但是,在处理 SIGSEGV 时,它被正确调度并且其他线程能够运行。
收到信号后,我将一些恢复机制发布到另一个线程。对于 sigsegv 它正在执行,对于 SIGABRT 它不是因为线程本身没有被调度。
仅供参考:我正在为拥有> 150个线程的进程使用基于优先级的RR调度。
【问题讨论】:
-
你无法处理真相。对不起,我的意思是 SIGABRT。您无法处理 SIGABRT。
-
^^^ - @KerrekSB 很有趣 :)
标签: c++ linux linux-kernel scheduling