我收到了这个错误:
pthread_mutex_lock.c:62:__ pthread_mutex_lock:断言`mutex-> _ 数据。 _owner == 0'失败。
我找不到任何原因。但是我不确定以下代码:
声明:
std::mutex lock;
std::condition_variable cond;
锁的序列&解锁:
std::unique_lock<std::mutex> lk(lock);
cond.wait(lk);
lock.unlock();
如果我删除此序列 - 一切正常,但没有任何保护。我不确定我是否正确使用unique_lock
。
答案 0 :(得分:2)
std::unique_lock
和其他锁在构造函数中获取互斥锁并在析构函数中释放它。
您手动调用了代码中的lock.unlock()
,使其有效调用两次。
删除该语句后,您的代码应该正常工作。