我一直在試圖瞭解如何POSIX線程和POSIX信號相互作用的複雜性。特別是,我感興趣的是:POSIX線程和信號
- 什麼是控制信號傳遞到哪個線程的最佳方式(假設它首先不是致命的)?
- 什麼是告訴另一個線程(這實際上可能是忙),該信號已經來臨的最好方法? (我已經知道,這是一個壞主意,利用從信號處理並行線程條件變量。)
- 我怎樣才能安全地處理傳遞一個信號發生了其他線程的信息?這是否需要在信號處理程序中發生? (我做的不是一般的想殺死其他線程。我需要一個遠微妙的方式)
僅供參考我爲什麼想要這個,我研究如何將TclX包,支持線程轉換,或分解它,並至少使一些有用的部分支持線程。信號是特別感興趣的部分之一。
這是一個非常有用的答案,特別是它可以用於處理非致命的信號處理。謝謝! – 2010-04-23 20:49:06
如果信號處理線程根本沒有安裝信號處理程序,那麼它最簡單 - 相反,它在'sigwaitinfo()'(或'sigtimedwait()')上循環,然後按照描述將其分發到應用程序的其餘部分在最後一段。 – caf 2015-07-20 06:55:37
@caf,的確如此。更新 – pilcrow 2015-07-20 16:37:52