0
我有一個共享資源,表示Web服務器的請求統計信息,它在處理客戶端連接的接受調用後分叉。當某個信號被父進程捕獲時,我想將這些統計信息打印到stderr,但是統計信息結構受到信號量的保護,並且我知道由於死鎖而在信號處理程序中鎖定/解鎖信號量是個壞主意的問題。我已經嘗試在sig處理程序中設置一個標誌,並通過在accept()後首先檢查EINTR來設置標誌,然後檢查標誌但不起作用,從父進程打印統計信息。有任何想法嗎?從信號處理器中的共享資源讀取
所以我似乎已經找到了解決這個問題的方法。基本上通過使用sigaction()關閉系統調用來自動重啓並檢查EINTR的accept()返回值似乎可行。 – usddddd