首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每次Boost scoped_lock失败

每次Boost scoped_lock失败
EN

Stack Overflow用户
提问于 2014-12-26 18:21:02
回答 1查看 3K关注 0票数 0

在类中,我希望在这样的函数上使用互斥

代码语言:javascript
复制
void Agent::notify(Packet& packet, Peer peer) {
    boost::mutex::scoped_lock lock(mutex_);
    ...
}

编译过程中没有问题。但是当我执行程序时,boost总是失败在这一行上:

代码语言:javascript
复制
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >'
  what():  boost: mutex lock failed in pthread_mutex_lock: Invalid argument
Abandon (core dumped)

我尝试使用lock()unlock方法,但同样的问题。当我使用try_lock时,它不会失败,条件总是假的。

在网上搜索,我发现了这个https://svn.boost.org/trac/boost/ticket/9307

但我认为问题是我的计划,但我不知道在哪里。在我的测试中,这个函数中只有一个线程。

EN

回答 1

Stack Overflow用户

发布于 2014-12-27 13:19:37

问题是,在程序中,使用互斥锁的线程需要在同一个级别上。然而,创建此错误的线程是主线程。不是被创造出来的。

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

https://stackoverflow.com/questions/27660519

复制
相关文章

相似问题

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