我有SIGABRT的信号处理程序,当收到信号时,我需要更多时间让其他线程正常退出。然后我将在信号处理程序内部执行_exit()以退出整个过程。
但我不知道如何在信号处理程序内等待。我认为在信号处理程序中使用sleep有一些限制。我不想用忙等待。
有人建议任何想法吗?
答案 0 :(得分:0)
在信号处理程序中可以执行的代码类型没有限制。您只需要记住,在执行信号处理程序时可能会有另一个信号到达,使您处于半完成函数,锁定的互斥锁或其他应该更好地保持不间断的事物中。
通常你会让信号处理程序设置一个标志信号给所有线程,以便很好地退出,从信号处理程序返回,然后让你的代码正常退出。