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