【发布时间】:2010-10-26 15:09:11
【问题描述】:
我需要通过“/bin/sh”从一个守护进程执行一些命令。有时这些命令执行时间太长,我需要以某种方式中断它们。守护进程是用 C++ 编写的,命令使用 std::system() 执行。我需要清理堆栈,以便在线程死亡时调用析构函数。 (在 C++ 异常处理程序中捕获事件将是完美的)。
线程是使用 boost:thread 创建的。不幸的是,在这种情况下 boost::thread::interrupt() 或 pthread_cancel() 都没有用。
我可以想出几种方法来做到这一点,从编写我自己的 system() 版本,到找到孩子的 process-id 和 signal() 它。但是一定有更简单的方法吗?
【问题讨论】:
-
在提出新问题之前,您可能需要接受对以前的问题的一些答案。
标签: c++ multithreading