在对2010年自动在Unix上崩溃时自动释放互斥锁的问题的评论中,jilles声称:
glibc强大的互斥体非常快,因为glibc采用危险的快捷方式.当内核将其标记为"将导致EOWNERDEAD"时,无法保证互斥锁仍然存在.如果互斥锁被破坏并且内存映射文件替换为内存映射文件恰好包含在正确位置的最后一个拥有线程的ID而最后一个拥有线程在写入锁定字之后终止(但在从其列表中完全删除互斥锁之前)拥有的互斥锁),文件已损坏.Solaris和will-be-FreeBSD9强大的互斥体速度较慢,因为它们不想冒这个风险.
我无法理解索赔,因为除非它被解锁(因此不在任何线程的强大列表中),否则销毁互斥锁是不合法的.我也找不到任何搜索这样的错误/问题的参考资料.索赔是否只是错误的?
我问的原因和我感兴趣的是,这与我自己实现的相同Linux robust-mutex原语的正确性有关.