This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: catch(...) and forced unwind


On Dec 16, 2003, at 12:05 PM, David Abrahams wrote:

Matt Austern <austern@apple.com> writes:

On Dec 16, 2003, at 4:23 AM, David Abrahams wrote:

Yes, though not directly. Bill Kempf (the Boost.Threads guy)
communicated with him and extensively read his writings on the subject
before he vaporized. My understanding, from everything I've read, is
that David Butenhof believes that *any* asynchronous (forced, not
under user control) cancellation model is wrong.

It's quite true that he thinks asynchronous cancellation is hard/impossible to use reliably. You can see that in sectiom 5.3.2 of his very clearly written book.

But we aren't talking about asynchronous cancellation.  We're talking
about deferred cancellation, which means that the thread may be
cancelled at any cancellation point.

I'm sorry, I was using a shorthand. Let me be clear: a cancellation exception which propagates from a function which is specified not to throw is the "moral equivalent" of an async exception. The reason async exceptions are hard/impossible to use reliably is that exceptions crop up in regions of code that would normally be nothrow.

Yep, I appreciate your point. I just wanted to make the distinction clear
for those who weren't familiar with pthreads, especially since we were
talking about David Butenhof's opinion. He's very clear that he thinks
asynchronous cancelation (in the technical POSIX sense) is an evil
feature, but I haven't seen anything to suggest that he feels that way
about deferred cancellation.


I recommend his book, by the way, _Programming with POSIX
Threads_.

--Matt


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]