有沒有什麼方法可以執行POSIX共享同步對象清除,特別是在進程崩潰時?鎖定POSIX信號量解鎖是最希望的事情,但自動'收集'隊列/共享內存區域也會很好。另一個需要注意的地方是我們不能在一般情況下使用信號處理程序,因爲SIGKILL不能被捕獲。共享POSIX對象在進程結束/死亡時清除
我只看到一個選擇:一些外部守護進程接受訂閱和'保持活動'請求作爲看門狗工作,因此沒有關於某個對象的通知,它可以根據註冊策略關閉/解鎖對象。
有沒有更好的選擇/命題?我以前從來沒有認真對待POSIX共享對象(我的意見是套接字足夠滿足我的需求,而且更有用),而且我沒有找到任何適用的文章。我很樂意在這裏使用套接字,但由於歷史原因而不能使用套接字。
你推薦的書非常好。 lockf()至少涵蓋了原始問題(信號量死鎖)的最危險部分)我構建的原型正常工作。 – 2009-11-13 12:53:48
順便說一下,lockf()可以與第三個參數設置爲0(所有文件)一起使用。這樣它不需要任何實際的字節。至少在Linux上。 – 2009-11-13 12:55:11