当父退出时,希望线程不会死 - linux

时间:2011-09-07 13:51:59

标签: c++ c boost-thread

我不想使用fork(),因为它增加了一层我希望避免的IPC管理。我想用pthread。我已经看到了克隆的strace,我不想在clone()详细级别上开始管理线程。

给他们起名字:A =主线程,B =工作线程。

我希望B能够在A离开时从A获得信号。 A可以为此注册atexit()。

A可能会从中止()或甚至SIGSEGV或其他终端信号中消失。 B的工作是关于日志记录:A和B共享一个容器,其中由A创建日志消息。如果A死亡,我希望B完成日志记录然后退出。

现在如果A退出,B退出,我丢失了日志队列中的任何内容。

所以我的问题是:有没有办法让B更有弹性,所以它坚持并且不会死于A?

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

答案 2 :(得分:2)

我认为您希望使用pthread_attribute创建分离的线程。

https://computing.llnl.gov/tutorials/pthreads/

向您展示如何 - 只需搜索“分离”:)它将在父母之后继续存在,然后您可以随意使用它。