2
假設我有一個不阻塞任何信號的多線程應用程序,並且有一個線程調用sigwait()
,其掩碼爲SIGTERM
。如果進程從外部收到SIGTERM
,以下哪一項有保證?如果沒有線程阻塞信號,並且一個線程在`sigwait()`中,是否有保證被阻塞的線程會接收下一個信號?
- 阻止在
sigwait()
上的線程將收到它。 - 上面的線程是只有線程,它會收到它。
我檢查了man page,但它沒有解決這些問題。
假設我有一個不阻塞任何信號的多線程應用程序,並且有一個線程調用sigwait()
,其掩碼爲SIGTERM
。如果進程從外部收到SIGTERM
,以下哪一項有保證?如果沒有線程阻塞信號,並且一個線程在`sigwait()`中,是否有保證被阻塞的線程會接收下一個信號?
sigwait()
上的線程將收到它。我檢查了man page,但它沒有解決這些問題。
至少爲Linux:兩個possiblities沒有得到保證,如:
的信號配置是每進程屬性:在多線程應用程序,的處置所有線程的特定信號都是相同的。
因此,多於一個線程不會阻止SIGINT
那些可能收到它。