如果没有线程阻塞信号,并且一个线程在`sigwait()`中,是否有任何保证被阻塞的线程将接收下一个信号?

时间:2014-02-27 01:38:50

标签: c++ multithreading pthreads signals

假设我有一个没有阻塞任何信号的多线程应用程序,并且一个线程使用sigwait()的掩码调用SIGTERM。如果流程在外部收到SIGTERM,是否有以下任何一种保证?

  1. sigwait()上阻止的主题会收到它。
  2. 以上主题是唯一主题,它将接收它。
  3. 我检查了man page,但它没有解决这两个问题。

1 个答案:

答案 0 :(得分:0)

至少对于Linux:两种可能性中没有一种可以保证,如:

来自man 7 signal

  

信号处理是一个每进程属性:在多线程应用程序中,特定信号的配置对于所有线程都是相同的。

因为多个线程不会阻止SIGINT,所以可能会收到它。