【发布时间】:2013-10-24 15:03:42
【问题描述】:
当等待std::conditional_variable 时,我对std::unique_lock 的需求感到很困惑。所以我查看了 VS 2013 中的库代码并变得更加困惑。这就是std::conditional_variable::wait() 的实现方式:
void wait(unique_lock<mutex>& _Lck)
{ // wait for signal
_Cnd_waitX(&_Cnd, &_Lck.mutex()->_Mtx);
}
这是在开玩笑吗?将互斥锁包装在 unique_lock 中,然后什么都不做,只是稍后将其取回?为什么不在参数列表中使用互斥锁?
【问题讨论】:
-
您可能想阅读这个问题stackoverflow.com/q/2763714 它是特定于 pthread 的,但也适用于这种情况。
标签: c++ visual-c++ c++11