首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pthread_mutex_lock.c:62:__pthread_mutex_lock:断言‘`mutex>__ == 0’失败

pthread_mutex_lock.c:62:__pthread_mutex_lock:断言‘`mutex>__ == 0’失败
EN

Stack Overflow用户
提问于 2012-02-11 11:56:24
回答 1查看 11.5K关注 0票数 8

我收到了这个错误:

pthread_mutex_lock.c:62:__pthread_mutex_lock:断言‘`mutex>_data._owner == 0’失败。

我找不到任何原因。但是,我不确定下面的代码:

声明:

代码语言:javascript
复制
std::mutex lock;
std::condition_variable cond;

锁和解锁顺序:

代码语言:javascript
复制
std::unique_lock<std::mutex> lk(lock);

cond.wait(lk);

lock.unlock();

如果我删除这个序列-一切正常,但没有任何保护。我不确定我是否正确地使用unique_lock

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-11 13:09:20

std::unique_lock和其他锁在构造函数中获取互斥锁,并在析构函数中释放它。您在代码中手动调用了lock.unlock(),使其有效地被调用了两次。

删除该语句后,您的代码应该正常工作。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9239999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档