在动作处理程序中杀死线程的安全方法

时间:2013-10-18 00:41:15

标签: c linux pthreads posix

我正在开发一个C99多线程Linux程序,我有几个运行第三方代码的线程。所以,我希望能够处理 SIGSEGV 以退出有问题的线程并让其他线程有机会完成nicelly,最后退出程序。问题是pthread_exit不是异步信号安全的,我想知道这样做的正确方法是什么。

我不关心portabillity,因为它适用于Linux 3.0 +。

编辑:抱歉,我写了pthread_kill,但我的意思是pthread_exit,因为pthread_kill只会发送另一个信号。

更新根据Damon的反馈意见:

我对完成的意思是等待其他线程完成处理。然后退出整个过程。设置全局(静态volatile sig_atomic_t g_quit)。但是,与此同时,我不希望生成SIGSEGV的线程继续处理它。

0 个答案:

没有答案