
"Phil Endecott" <spam_from_boost_dev@chezphil.org> writes:
Hi Anthony,
Anthony Williams wrote:
"Phil Endecott" <spam_from_boost_dev@chezphil.org> writes:
Howard Hinnant wrote:
On Oct 30, 2007, at 2:03 PM, Phil Endecott wrote:
Howard Hinnant wrote:
Actually thread cancellation is old. Many (not all) thread API's have some form or another of cancellation. That being said, the compromise reached at the Kona meeting 4 weeks ago was to remove cancellation (or interruption) from the proposal. This removal is reflected in N2411.
That's unfortunate. I'm a little confused about how completely removing it is a "compromise"!
This is something that I need. Does anyone know of an alternative (POSIX-compatible) C++ thread library that offers cancellation? If not I may try to write one.
[answering your other mail first]
By "POSIX-compatible" do you mean "works with and uses pthread_cancel", or do you mean something else? It's the interaction with pthread_cancel that caused the biggest sticking point, as I understand things.
Sorry, I was being inaccurate. What I should have said was that I'm writing Linux code, so I need a library that will work on Linux. Being implemented on top of the pthreads functions would be one solution. No, I don't need to mix C++ destructors and C pthread_cleanup. Of course a cross-platform solution would be essential for a standard library and very highly desirable for a Boost library, but I need a solution "real soon now"! Hence my enquiry about any other libraries that people might know about.
I added better cancellation to boost thread yesterday. condition wait+timed_wait, thread join+timed_join, sleep and this_thread::cancellation_point are now all cancellation points on pthreads and windows. This uses a thread_cancelled exception, and does not interoperate with pthread_cancel.
Clearly there are various choices about how cancellation should behave, with various pros and cons, and many questions about the practicalities of implementation on different platforms. Certainly the standards committee have investigated these issues. I would very much like to have some insight into what they discovered during their investigations, leading them to their decision to not offer any sort of cancellation.
N2420 (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2420.pdf) covers some of the relevant ground --- it's the minutes of the POSIX/C++ liaison committee. Anthony -- Anthony Williams Just Software Solutions Ltd - http://www.justsoftwaresolutions.co.uk Registered in England, Company Number 5478976. Registered Office: 15 Carrallack Mews, St Just, Cornwall, TR19 7UL