|
Boost : |
From: bill_kempf (williamkempf_at_[hidden])
Date: 2002-01-17 12:41:57
--- In boost_at_y..., "Peter Dimov" <pdimov_at_m...> wrote:
> From: "bill_kempf" <williamkempf_at_h...>
> > So, all this discussion leads us to:
> >
> > 1) Use deferred cancellation (and allow the user to turn
cancellation
> > off).
> > 2) Use a C++ exception for cancellation.
> > 3) Allow the user to catch the exception.
> > 4) Allow the user to "eat" the exception.
> > 5) Make the cancellation "flag" a sticky flag, so if the
user "eats"
> > the exception it will eventually be re-thrown when they call
another
> > cancellation point.
> > 6) Ensure cancellation points don't throw when uncaught_exception
()
> > returns true.
> > 7) Document that in general one should always rethrow a caught
> > cancelation exception.
>
> Yes to all. I'd rephrase 3, 4, and 7 as "normal C++ exception
handling rules
> apply; see a good book on exceptions." ;-)
I'm not sure that 7 is a universal generality for exceptions.
In any event, I'm trying to document our decisions here, not produce
documentation for the use or implementation of Boost.Threads ;).
BTW, I'm working on documentation for boost::thread that should
clarify all of this, as well as bring some of the miscellaney that
people don't like about the current design closer to POSIX. I'll
post either later today or tomorrow, hopefully.
Bill Kempf
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk