[Bug libstdc++/50862] deadlock in std::condition_variable_any

redi at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Oct 26 13:03:00 GMT 2011


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50862

--- Comment #12 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-10-26 13:02:31 UTC ---
(In reply to comment #11)
> i'm not sure about uncaught_exception(). i remember reading in Herb Sutter's
> that it's usage should be avoided, since it has some flaw, that makes it's
> return value unsure.

http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#1368 ?


> but this was written in times of C++03 and i can't
> remember what was the reasoning behind it (threading perhaps?), so i do not
> know if it still holds for C++11 as well or not. any way there is still a
> possibility of exception throwing from d-tor, which would be better to avoid.

Why?  In general, yes. But in this specific case I don't see a problem.
it's a local class, noone can misuse it elsewhere.
The value of uncaught_exception is well defined at the point where I want to
call it.

> but perhaps we'd be able to come out with some better/cleaner/shorter solution
> for this problem?

Comment 10 :)

In practice, _M_cond.wait() is not going to throw (the error conditions for
pthread_cond_wait cannot happen here) so this is irrelevant.



More information about the Gcc-bugs mailing list