Я написал многопоточную программу, похожую на следующую структуру (я исключил мьютекс и посторонний код), и она блокирует вызов boost::thread_group.add_thread()
при вызове из потока. Есть ли способ обойти это, чтобы звонок не блокировался?
boost::thread_group group;
void threaded_function2()
{
}
void threaded_function()
{
if( condition)
{
boost::thread *t3 = new boost::thread( boost::bind( &threaded_function2));
group.add_thread( t3); // <-- Blocks on this call
}
}
int main()
{
boost::thread *t1 = new boost::thread( boost::bind( &threaded_function));
boost::thread *t2 = new boost::thread( boost::bind( &threaded_function));
group.add_thread( t1);
group.add_thread( t2);
group.join_all();
return 0;
}
Спасибо всем.