This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

re: C++ vs. pthread_cancel

On Mon, 2005-08-15 at 06:12 -0700, Dan Kegel wrote:
> Peter Zijlstra <> wrote:
> > On this controversial subject, could somebody please - pretty please
> > with a cherry on top - tell me what the current status is:
> >  - in general,
> >  - as implemented in the 3.4 series and
> >  - as implemented in the 4.0 series.
> > 
> > At work we're using 3.4 and we have managed to shoot our foot of with
> > this issue :-(, google gives a lot of hits on the issue but it is a bit
> > hard to get the current impl. status for 3.4. Which in turn makes it
> > hard to decide on how to bandage our foot.
> Could you provide a link to a description of the particular
> problem?  I looked around, and all I could find was
> I suppose the controversial part is that you're using
> pthread_cancel, which is somewhat frowned upon as
> inherently unsafe.
> - Dan

Yes, is seems to be that problem.

Discussion here:

And this list seems dedicated to the problem:

The issue seems to be that pthread_cancel is implemented using
force_unwind, the same mechanism as used for exception handling. And the
interaction is ill defined.

The behaviour of gcc-3.4 is that the unclassified exception caused by
SIGCANCEL can be caught by the catch-all clause: 'catch (...)'. And then
when not rethrown causes an abort.

Peter Zijlstra

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]