Subject: Re: [Boost-bugs] [Boost C++ Libraries] #7668: thread_group::join_all() should check whether its threads are joinable
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-01-10 19:51:52
#7668: thread_group::join_all() should check whether its threads are joinable
------------------------------------+---------------------------------------
Reporter: boost.lists@⦠| Owner: viboes
Type: Bugs | Status: closed
Milestone: Boost 1.53.0 | Component: thread
Version: Boost 1.52.0 | Severity: Problem
Resolution: fixed | Keywords: thread;thread_group
------------------------------------+---------------------------------------
Comment (by Andrew Molyneux <andrew.molyneux@â¦>):
> No. I thread that finish normally is still joinable. From where are you
deducing this?
I thought I'd observed it, but on further investigation the situation is a
bit more complex. My code is actually using thread::timed_join()
periodically, to check if the thread is still running. I've distilled it
down to the following code, which triggers the behaviour that surprised
me:
{{{#!C++
void threadFunction()
{
boost::this_thread::sleep(boost::posix_time::millisec(100));
}
int main(int argc, char* argv[])
{
boost::thread theThread(threadFunction);
// Wait long enough to be fairly certain that the thread has finished
boost::this_thread::sleep(boost::posix_time::millisec(200));
if (!theThread.timed_join(boost::posix_time::millisec(0)))
{
cout << "Thread still running???" << endl;
return 1;
}
theThread.join();
}
}}}
When I run that code, I get an exception on the call to theThread.join(),
complaining that the thread is not joinable. It seems that after
theThread.timed_join() succeeds, the thread is no longer joinable. Is this
the expected behaviour?
By the way, my environment is Windows 7 64-bit, but 32-bit Boost, with
Visual Studio 2005 and Boost 1.52.0).
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/7668#comment:10> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:11 UTC