[c++-pthreads] Does the cancelation exception have a name?

Jakub Jelinek jakub at redhat.com
Tue Nov 7 09:30:05 UTC 2006


On Mon, Nov 06, 2006 at 06:54:28PM +0200, Peter Dimov wrote:
> Jason Merrill wrote:
> >Peter Dimov wrote:
> >>Daniel Jacobowitz wrote:
> >>
> >>>The latest state I know of for this question is here:
> >>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28145
> >>
> >>Follow-up question:
> >>
> >>Is it possible (and desirable) to give different names to the two
> >>"exceptions" resulting from pthread_cancel and pthread_exit?
> >
> >It's not trivial, the information my implementation checks only
> >identifies forced unwind, but I don't see any reason it shouldn't be
> >possible by putting the extra information somewhere.  It certainly
> >seems desirable.
> 
> >From looking at the code, it seems possible for pthread_exit and 
> pthread_cancel to put something into _Unwind_Exception::exception_class (or 
> private_1/private_2) that could allow an extension of your patch to match 
> them as if by name. But I'm definitely not an expert on this, so I thought 
> it'd be better to ask. 

Only in _Unwind_Exception::exception_class, private_{1,2} are used and
initialized within _Unwind_ForcedUnwind.
But guess NPTL could initialize exception_class to GNUthre\0 resp. GNUthrc\0
for pthread_exit resp. pthread_cancel instead of GNUCC++\0 which is used
by GCC __cxa_throw or 0 which is used by NPTL ATM.

	Jakub



More information about the c++-pthreads mailing list