
Alexander Terekhov wrote:
Jonathan Wakely wrote:
Pthreads knows nothing about exceptions,
That's not true.
http://www.opengroup.org/onlinepubs/009695399/functions/pthread_once.html
"The pthread_once() function is not a cancellation point. However, if init_routine is a cancellation point and is canceled, the effect on once_control shall be as if pthread_once() was never called."
Yep, that's what I referred to in my mail.
http://www.opengroup.org/onlinepubs/009695399/functions/pthread_cleanup_push...
"Note that the specified cleanup handling mechanism is especially tied to the C language and, while the requirement for a uniform mechanism for expressing cleanup is language-independent, the mechanism used in other languages may be quite different. In addition, this mechanism is really only necessary due to the lack of a real exception mechanism in the C language, which would be the ideal solution."
Good point, but as you know, it's not settled whether cancellation is a C++ exception ... but let's not start this on the Boost list as well, I have other mailboxes for that subject! :) jon -- "Accept the contradictions" - The KLF