【发布时间】:2014-05-06 07:46:41
【问题描述】:
在维护中,我看到项目代码(在 Linux 上的 c/c++ 中)调用 libc exit 函数以防出现一些不可恢复的错误。但是,此进程终止调用跨多个线程使用(每个线程都面临不可恢复的情况)。现在 -
- 进程
exit是否可以从主线程以外的线程调用而没有任何副作用。 - 无论何时调用
exit(在主线程或任何其他线程中),它是否保证线程正常退出。
我知道标准(手册页)对此保持沉默,最好的方法是启动所有线程的优雅终止并使用通知机制,main 线程必须被通知优雅终止。但是,由于它是一个正在维护的项目,所以在更改之前要检查当前行为是否正确。
我面临的问题是,我可以看到随机崩溃,其中一个线程处于exit 调用执行的正当过程中。
【问题讨论】:
-
'随机崩溃' - 有什么症状,发生了什么不应该发生的事情?
标签: c++ linux unix process operating-system