nptl SIGCONT和线程调度

时间:2010-04-19 08:19:48

标签: c linux pthreads scheduling signals

我正在尝试移植依赖于SIGCONT的代码来停止应用程序的某些线程。使用当前的linux nptl实现似乎不能依赖2.6.x内核中的那个。我正在尝试设计一种方法来阻止其他线程。目前我只能考虑互斥锁和条件变量。任何提示都表示赞赏。

2 个答案:

答案 0 :(得分:1)

如果您依赖停止并恢复其他线程,那么您的应用程序最终将失败。

这是因为,您无法保证在保护共享资源时使用互斥锁时不会停止某个线程。这会导致死锁,因为任何其他线程(可能包括停止第一个线程的线程)然后需要等待互斥锁,将永远等待。

我确信这是可能的,而且,你做错了。


注意:这些互斥锁可能存在于C库的某些部分,即使您自己的代码中没有。如果你自己的代码中没有,并且它是非常重要的,我会感到惊讶。

答案 1 :(得分:0)

您如何将信号发送到目标线程?如果您使用pthread_kill()SIGSTOP / SIGCONT发送到单个帖子,则应该有效。