我处于调用join()
对象boost::thread
引发thread_resource_error
异常的情况。查看文档没有提到这个方法可能会抛出这样的异常。
我不太确定从哪里开始调试。关于什么可能导致这种情况的任何建议?
我处于调用join()
对象boost::thread
引发thread_resource_error
异常的情况。查看文档没有提到这个方法可能会抛出这样的异常。
我不太确定从哪里开始调试。关于什么可能导致这种情况的任何建议?
查看 boost 源代码,我发现以下内容:
void thread::join()
{
if (this_thread::get_id() == get_id())
{
boost::throw_exception(thread_resource_error(system::errc::resource_deadlock_would_occur, "boost thread: trying joining itself"));
}
detail::thread_data_ptr local_thread_info=(get_thread_info)();
if(local_thread_info)
{
this_thread::interruptible_wait(local_thread_info->thread_handle,detail::timeout::sentinel());
release_handle();
}
}
所以基本上它有一些未记录的行为,thread_resource_error
如果一个线程试图加入自己,它会抛出一个。