[c++-pthreads] Re: I'm Lost
Kevlin Henney
kevlin at curbralan.com
Wed Jul 27 17:37:01 UTC 2005
In message <42E7709F.AE07F97A at web.de>, Alexander Terekhov
<terekhov at web.de> writes
>
>Wil Evers wrote:
>[...]
>> I'd say it's time to face the truth, which is that POSIX cancellation
>> semantics are incompatible with commonly established C++ coding
>> practices.
>
>It's incompatible with cancel-unaware C++ code. Note that it's
>incompatible with cancel-unaware C code as well, but that didn't
>stop POSIX and ongoing creation of cancel-safe code in both C
>and C++ languages. Very many tons of cancel-safe code.
To the best of my knowledge there have been zero lines of cancel-safe
C++ code written against the C++ binding of POSIX threads.
Of course, C and C++ have an intimate relationship, but that does not
mean to say that they are the same or that C++ must slavishly follow the
same model that C has decided on. There is a question of
interoperability, but that is not the same as portability. The
discussion so far seems to have taken the latter view, which is subtly
different.
If the C++ binding chooses to throw exceptions for cancellation, no C++
code will be broken by silent changes. Code written in C++ that is
correct against the C binding will continue to be correct against that
binding. But should the program be modified to take advantage of a C++
binding, that guarantee no longer holds. However, this is unsurprising
and is to be expected of any migration between APIs. Of course, it makes
sense to minimise gratuitous differences, but minimal difference is not
the same as no difference.
Kevlin
--
____________________________________________________________
Kevlin Henney phone: +44 117 942 2990
mailto:kevlin at curbralan.com mobile: +44 7801 073 508
http://www.curbralan.com fax: +44 870 052 2289
Curbralan: Consultancy + Training + Development + Review
____________________________________________________________
More information about the c++-pthreads
mailing list