Subject: Re: [Boost-bugs] [Boost C++ Libraries] #7669: thread_group::join_all() should catch resource_deadlock_would_occur
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2012-11-09 20:22:32
#7669: thread_group::join_all() should catch resource_deadlock_would_occur
------------------------------------+---------------------------------------
Reporter: boost.lists@⦠| Owner: anthonyw
Type: Bugs | Status: new
Milestone: To Be Determined | Component: thread
Version: Boost 1.52.0 | Severity: Problem
Resolution: | Keywords: thread;thread_group
------------------------------------+---------------------------------------
Comment (by viboes):
Replying to [comment:2 Igor R. <boost.lists@â¦>]:
> This would make thread_group unusable in the cases where the above
precondition cannot be enforced. The question is why it's better than my
proposal.
You are right, the user can not check this pre-condition as it has no
access to the threads in the group other than duplicating. But calling to
join_all and joining all but one of the threads don't respect either the
post-conditions. I don't think it is a good design to to request to join
on itself.
I planned to deprecate thread_group so I don't want to invest too much on
it.
I guess there are two options:
- the implementation check always if the this_thread is in the thread
group and throw a specific exception, or
- the library provides a function that states if this_thread is in the
thread group, so that the user that is in a context that the current
thread could be one of the group could check it. The join_all function has
the Require clause described above.
What do you think?
What do you think?
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/7669#comment:3> 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