信号处理程序是否设置为sigaction
在其自己的线程中运行?是否可以使用Pthreads工具将信号处理程序与主程序同步,例如Pthreads互斥锁?我可以使用C ++ 11类的工具mutex
和atomic
?
抱歉,这个问题有点笼统,但是我对信号和线程之间的关系感到困惑。
我正在使用Linux,但该问题通常适用于UNIX。
不。
您可以在信号处理程序中安全调用的唯一函数是异步信号安全函数。对于Linux,您可以在signal.7手册页的“异步信号安全功能”下找到一些此类功能的列表,该页面比页面的一半还多。
没有在异步信号安全中列出的任何函数都不能在信号处理程序中安全地调用。
请注意,在Linux上列为async-signal-safe的唯一同步功能是sem_post()
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句