[c++-pthreads] cancellation points report failure
David Abrahams
dave at boost-consulting.com
Fri Dec 19 20:44:19 UTC 2003
Nathan Myers <ncm at cantrip.org> writes:
> On Fri, Dec 19, 2003 at 10:28:46AM -0800, Matt Austern wrote:
>>
>> One possible solution (perhaps overly drastic): in C++, eliminate
>> all cancelation points except for pthread_testcancel.
>
> Another would be for those functions identified as cancellation
> points to report failure. In particular, a read() call should return
> immediately. Existing (good) code has to handle normal failures
> already. Well-designed library code will propagate the failure up
> to the point where a check for cancellation, and throw, may occur.
Ingenious! I'm not sure about all the implications, but I think we
should explore this idea further. In hindsight, it's almost obvious:
a function should only report failure in one way. Requiring
programmers to deal with exceptions *and* failure status makes the
whole thing unwieldy and error-prone.
Nice one, Nathan.
--
Dave Abrahams
Boost Consulting
www.boost-consulting.com
More information about the c++-pthreads
mailing list