id summary reporter owner description type status milestone component version severity resolution keywords cc 9654 try_join_for(0) returns false when thread has exited ernest.galbrun@… Anthony Williams "I use try_join_for(boost::chrono::milliseconds(0)) to check if my thread has finished. When upgrading from boost 53 to boost 55 I noticed that it now returns false systematically. It seems to work fine if I use any duration other than 0. Here is a minimal code that reproduces the problem, I work with visual studio 2012 x64: {{{ #include #include void my_func(void){ std::cout<<""This shouldn't take long...\n""; } void main(void) { boost::thread * t = new boost::thread(my_func); int i = 0; while (! t->try_join_for(boost::chrono::milliseconds(1))) { std::cout<<""iteration ""<<++i<<'\n'; boost::this_thread::sleep_for(boost::chrono::milliseconds(100)); } std::cout << ""first task finished\n""; delete t; t = new boost::thread(my_func); i=0; while (! t->try_join_for(boost::chrono::milliseconds(0))) { std::cout<<""iteration ""<<++i<<'\n'; boost::this_thread::sleep_for(boost::chrono::milliseconds(100)); } std::cout << ""second task finished\n""; } }}} " Bugs closed thread Boost 1.55.0 Regression duplicate