0
클래스에서 실패, 나는 컴파일 과정에서이부스트 scoped_lock 매번
void Agent::notify(Packet& packet, Peer peer) {
boost::mutex::scoped_lock lock(mutex_);
...
}
문제 없음과 같은 기능을 통해 뮤텍스를 사용하고 싶습니다. 내가 프로그램을 실행할 때, 항상 향상 말하는이 줄에서 실패 :
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입니다.
하지만 문제는 내 프로그램이라고 생각하지만 어디서 보지 못합니다. 내 테스트에는이 함수에 포함 된 스레드가 하나뿐입니다.
어떻게'mutex_'가 선언/정의 되었습니까? 재귀 적으로 잠겨 있습니까? –
boost :: mutex mutex_ – Saroupille