首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >glibc/NPTL/Linux健壮互斥中的竞争条件?

glibc/NPTL/Linux健壮互斥中的竞争条件?
EN

Stack Overflow用户
提问于 2012-08-14 11:34:08
回答 2查看 1.1K关注 0票数 16

在2010年关于Automatically release mutex on crashes in Unix问题的评论中,jilles声称:

glibc强大的互斥量之所以如此之快,是因为glibc采用了危险的捷径。当内核将互斥锁标记为“将导致EOWNERDEAD”时,不能保证互斥锁仍然存在。如果互斥锁被销毁,内存被替换为内存映射文件,该文件恰好在正确的位置包含最后一个拥有线程的ID,并且最后一个拥有线程在写入锁字之后(但在从拥有互斥锁的列表中完全删除互斥锁之前)终止,则该文件将被损坏。Solaris和will-be-FreeBSD9健壮的互斥锁速度较慢,因为它们不想冒这个风险。

我不能理解这种说法,因为销毁互斥是不合法的,除非它是解锁的(因此不在任何线程的健壮列表中)。我也找不到任何搜索这样的bug/问题的参考资料。这种说法仅仅是错误的吗?

我这么问的原因和我感兴趣的原因是,这与我自己的实现的正确性有关,这些实现是基于相同的Linux robust-mutex原语构建的。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11945429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档