有没有什么方法可以执行POSIX共享同步对象清除,特别是在进程崩溃时?锁定POSIX信号量解锁是最希望的事情,但自动'收集'队列/共享内存区域也会很好。另一个需要注意的地方是我们不能在一般情况下使用信号处理程序,因为SIGKILL不能被捕获。共享POSIX对象在进程结束/死亡时清除
我只看到一个选择:一些外部守护进程接受订阅和'保持活动'请求作为看门狗工作,因此没有关于某个对象的通知,它可以根据注册策略关闭/解锁对象。
有没有更好的选择/命题?我以前从来没有认真对待POSIX共享对象(我的意见是套接字足够满足我的需求,而且更有用),而且我没有找到任何适用的文章。我很乐意在这里使用套接字,但由于历史原因而不能使用套接字。
你推荐的书非常好。 lockf()至少涵盖了原始问题(信号量死锁)的最危险部分)我构建的原型正常工作。 – 2009-11-13 12:53:48
顺便说一下,lockf()可以与第三个参数设置为0(所有文件)一起使用。这样它不需要任何实际的字节。至少在Linux上。 – 2009-11-13 12:55:11