簡體   English   中英

每次升壓scoped_lock失敗

[英]Boost scoped_lock failed every time

在一個類中,我想在這樣的函數上使用互斥鎖

void Agent::notify(Packet& packet, Peer peer) {
    boost::mutex::scoped_lock lock(mutex_);
    ...
}

編譯過程沒有問題。 但是,當我執行程序時,boost總是在此行失敗:

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它不會失敗,條件始終為false。

在互聯網上搜索時,我發現了這個https://svn.boost.org/trac/boost/ticket/9307

但是我認為問題出在我的程序上,但是我看不到哪里。 在我的測試中,此函數只有一個線程。

問題在於,在程序中,使用互斥鎖的線程必須處於同一級別 但是,導致此錯誤的線程是主線程。 不是創造的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM