catch(...) and forced unwind
Matt Austern
austern@apple.com
Tue Dec 16 21:50:00 GMT 2003
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
More information about the Gcc
mailing list