我收到了这个错误:
pthread_mutex_lock.c:62:__pthread_mutex_lock:断言‘`mutex>_data._owner == 0’失败。
我找不到任何原因。但是,我不确定下面的代码:
声明:
std::mutex lock;
std::condition_variable cond;锁和解锁顺序:
std::unique_lock<std::mutex> lk(lock);
cond.wait(lk);
lock.unlock();如果我删除这个序列-一切正常,但没有任何保护。我不确定我是否正确地使用unique_lock。
发布于 2012-02-11 13:09:20
std::unique_lock和其他锁在构造函数中获取互斥锁,并在析构函数中释放它。您在代码中手动调用了lock.unlock(),使其有效地被调用了两次。
删除该语句后,您的代码应该正常工作。
https://stackoverflow.com/questions/9239999
复制相似问题