[c++-pthreads]  Re: pthread_cancel and EH: let's try this again
    Jason Merrill 
    jason at redhat.com
       
    Wed Jul 13 15:39:42 UTC 2005
    
    
  
On Wed, 13 Jul 2005 17:28:50 +0200, Alexander Terekhov <terekhov at web.de> wrote:
> Jason Merrill wrote:
> [...]
>> while (true)
>>  try
>>   {
>>    body();
>>   }
>>  catch (...)
>>   {
>>    recover();
>>   }
>> 
>> Under the old non-EH implementation this thread cancelled properly.  
>
> You mean with omitted recovery? That's hardly "properly".
>
> Cancel-unaware code is not meant to be canceled. 
>
> It's as simply as that.
A customer of ours has code along those lines in a package that uses
pthread_cleanup_push/pop to handle cleanups on cancellation.  It works fine
under Solaris, tru64, and older linux systems.
It IS cancel-aware.  The problem is that allowing catch(...) to catch
cancellation changes what it MEANS to be cancel-aware in an incompatible
way.
Jason
    
    
More information about the c++-pthreads
mailing list