1
由於信號是異步的,主程序可以是一個非常 脆弱狀態當處理的信號並因此而信號 處理函數執行。因此,你應該避免從 信號處理在這種情況下,當他們說「脆弱的國家」時,它究竟意味着什麼?
我想在這種情況下做了測試執行任何 I/O操作或調用最庫和系統的功能,但我不知道如何將主程序進入脆弱狀態
由於信號是異步的,主程序可以是一個非常 脆弱狀態當處理的信號並因此而信號 處理函數執行。因此,你應該避免從 信號處理在這種情況下,當他們說「脆弱的國家」時,它究竟意味着什麼?
我想在這種情況下做了測試執行任何 I/O操作或調用最庫和系統的功能,但我不知道如何將主程序進入脆弱狀態
我不認爲「脆弱國家」是一個技術術語。我並不十分熟悉Linux的進程信號,但內核可能會在執行信號處理時禁用(或缺少)某些安全措施,例如全局對象的線程安全性或不期望其他副作用。
例如,您的報價特別提到IO操作。 IO操作通常是異步的,並在完成時引發中斷,我期望內核不希望在處理信號時調用IO中斷處理程序(我想會搶佔信號中當前運行的代碼處理程序),並且如果中斷處理程序修改了信號處理程序正在使用的某些資源,尤其是在處理的信號是等待IO操作的進程時,可能會將系統置於未定義狀態。