pthread_sigmask

POSIX 執行緒 – pthread_sigmask

在多執行緒的程式里,希望只在主執行緒中處理信號,可以使用該函式。

POSIX執行緒– pthread_sigmask
在多執行緒的程式里,希望只在主執行緒中處理信號,可以使用
函式:
int pthread_sigmask (int how,const sigset_t *set,sigset_t *oset)

用作在主調執行緒里控制信號掩碼。
How:
SIG_BLOCK:結果集是當前集合參數集的並集;SIG_UNBLOCK:結果集是當前集合參數集的差集;SIG_SETMASK:結果集是由參數集指向的集
頭檔案:<signal.h>
錯誤:[EINVAL] how不是已定義值
提示:除非信號在所有的執行緒里都阻塞,否則總能將異步信號傳輸給這個進程。
解釋:
每個執行緒均有自己的信號禁止集(信號掩碼),可以使用pthread_sigmask函式來禁止某個執行緒對某些信號的
回響處理,僅留下需要處理該信號的執行緒來處理指定的信號。實現方式是:利用執行緒信號禁止集的繼承關係
(在主進程中對sigmask進行設定後,主進程創建出來的執行緒將繼承主進程的掩碼)

相關詞條

熱門詞條

聯絡我們