在获取多个互斥锁时(或者使用boost,一个互斥锁的迭代器范围),我们可以使用std::lock或boost::lock来避免由于锁排序而导致的死锁。有类似的使用可锁定概念的std::try_lock和boost::try_lock函数。
还有TimedMutex概念,它添加了方法try_lock_for,try_lock_until为try_lock添加了超时语义。是否有类似std::lock的计划来提供死锁避免并支持超时语义(可能是std::try_lock_for(Lockable1& lock1, Lockable2& lock2, LockableN& lockn...)和std::try_lock_until(Lockable1& lock1, Lockable2& lock2, LockableN& lockn...))?
同样,是否为SharedTimedMutex函数lock_shared、try_lock_shared、try_lock_shared_for和try_lock_shared_until计划了避免死锁的函数
发布于 2014-04-26 08:17:55
不,我不知道有任何增加这些功能的建议。
我也不相信过去有任何提案,但我可能在一年前的C++0x过程中错过了。
我认为这些函数的用例比std::lock和std::try_lock的用例要少得多
https://stackoverflow.com/questions/23258359
复制相似问题