id summary reporter owner description type status milestone component version severity resolution keywords cc 5843 thread.cpp: thread::join() does not throw for a non-joinable thread noloader@… viboes "Boost uses non-joinable threads. For example, under Windows: {{{ thread::thread() : m_joinable(false) { m_thread = reinterpret_cast(GetCurrentThread()); m_id = GetCurrentThreadId(); } }}} The thread::join() properly asserts the property, but still attempts to join a non-joinable thread: {{{ void thread::join() { assert(m_joinable); //See race condition comment below int res = 0; res = WaitForSingleObject(reinterpret_cast(m_thread), INFINITE); assert(res == WAIT_OBJECT_0); res = CloseHandle(reinterpret_cast(m_thread)); assert(res); // This isn't a race condition since any race that could occur would // have us in undefined behavior territory any way. m_joinable = false; } }}} Related to https://svn.boost.org/trac/boost/ticket/5838 and https://svn.boost.org/trac/boost/ticket/5842." Bugs closed thread Boost 1.47.0 Problem invalid viboes