Re: [c++-pthreads] cancellation points report failure
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [c++-pthreads] cancellation points report failure
- To: mark@xxxxxxxxxxxxxxxx
- Subject: Re: [c++-pthreads] cancellation points report failure
- From: Matt Austern <austern@xxxxxxxxx>
- Date: Fri, 19 Dec 2003 11:52:18 -0800
On Dec 19, 2003, at 11:49 AM, Mark Mitchell wrote:
I don't like the idea of ever entirely discarding a cancellation. If
a cancellation exception is thrown, caught, and discarded, I would
like
to see it surface again at the next opportunity. I think that means
that, e.g., I/O operations might be allowed in exception-handling code
being run during the cancellation unwind, but if one of those handlers
were to swallow the exception, the next I/O operation would fail or
throw another cancellation. The idea is not to let the thread get
much further without finding cause to bubble up toward the top-level
caller that knows it's in a thread, and can die gracefully.
I think that is a reasonable idea.
I would much prefer that to (say) implicitly rethrowing cancellation
exceptions.
My understanding is that if a particular cancellation point is disabled,
this does *not* mean that the cancellation is discarded. It means that
it will be kept around until the next cancellation point. (The thread
will
never see the cancellation if it never calls a function that is a
cancellation points, but that's an inevitable consequence of
any synchronous cancellation scheme.)
--Matt