杀死导致SIGSEGV的线程

时间:2010-12-08 20:33:06

标签: multithreading posix kill signals

一些信息:我必须编写一个控制某些设备的程序(这是基本功能)。但我必须编写某种插件系统来启用其他自定义功能。我无法控制那些插件源质量,所以我想我会为每个加载的插件创建一个线程然后它将在它自己的主循环中运行。我能够捕获标准的C ++异常,但问题是我不知道如何处理信号。最好的方法是异步取消插件的线程给他机会清理和释放资源或者只是杀死他但不知道如何找出哪个线程导致当前信号。有没有办法在没有明确保存的情况下保存当前在某些变量中执行的线程信息?或者这完全是坏主意,我应该创建单独的进程,然后运行插件?

2 个答案:

答案 0 :(得分:0)

是的,这完全是一个坏主意。线程是一个合作的,几乎所有的共享,编程模型不提供任何隔离。这只是错误的工具。

答案 1 :(得分:0)

我会使用传统流程来获得完全隔离并使用IPC机制进行通信。