C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了pthread_atfork锁定成语坏了吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
pthread_atfork用法的标准习惯用法获取pre-fork处理程序中的所有锁,并在父处理程序和子处理程序中释放它们.但据我所知,这是不可能的.如果调用线程不是互斥锁的所有者,则指定pthread_mutex_unlock具有未定义的行为(在普通或认类型互斥锁的情况下)或失败(在递归或错误检查互斥锁的情况下).在使用pthread_atfork注册的子处理程序中,调用线程是新创建的进程的主线程,因此不能是互斥锁的所有者.

我错了还是整个pthread_atfork成语被设计破坏并且基本上不可能使用?

编辑:我也没有看到该问题的任何有效(可移植)解决方法.理想情况下,可以在子进程中销毁和重新初始化互斥锁,除了在初始化的互斥锁上调用pthread_mutex_destroy被指定为未定义的行为,以适应互斥体不是POD但涉及对某些内核级对象的引用的荒谬实现.

解决方法

我认为这是男人的相关文字

在子节点中执行atfork处理程序的线程是在父节点中执行atfork prepare处理程序的线程的精确副本,因此有权解锁互斥锁.

大佬总结

以上是大佬教程为你收集整理的pthread_atfork锁定成语坏了吗?全部内容,希望文章能够帮你解决pthread_atfork锁定成语坏了吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: