This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: catch(...) and forced unwind
- From: Jamie Lokier <jamie at shareable dot org>
- To: David Abrahams <dave at boost-consulting dot com>
- Cc: Matt Austern <austern at apple dot com>, Jason Merrill <jason at redhat dot com>, Ulrich Drepper <drepper at redhat dot com>, gcc at gcc dot gnu dot org, Richard Henderson <rth at redhat dot com>, Nathan Myers <ncm at cantrip dot org>, Jakub Jelinek <jakub at redhat dot com>, wekempf at cox dot net, Mark Mitchell <mark at codesourcery dot com>, fjh at cs dot mu dot oz dot au, Benjamin Kosnik <bkoz at redhat dot com>, William Kempf <williamkempf at hotmail dot com>
- Date: Thu, 18 Dec 2003 18:51:17 +0000
- Subject: Re: catch(...) and forced unwind
- References: <xypekv9nr9u.fsf@miranda.boston.redhat.com> <u65gkyhv4.fsf@boost-consulting.com> <20031214035909.GE2416@tofu.dreamhost.com> <xypk74xltaa.fsf@miranda.boston.redhat.com> <ullpdlksl.fsf@boost-consulting.com> <xyp1xr5lh5q.fsf@miranda.boston.redhat.com> <usmjlhryu.fsf@boost-consulting.com> <278A5A0A-3001-11D8-8564-00039390D9E0@apple.com> <20031218133852.GA16315@mail.shareable.org> <uhdzycf7g.fsf@boost-consulting.com>
David Abrahams wrote:
> IIUC The 'C' lib functions are "throw()" when invoked from C++, so if
> pthreads mandates that C I/O functions throw in C++, I think your idea
> does violate pthreads.
If it's true that C library functions are throw(), even functions
which are cancellation points, then the rule needs to be that
_calling_ a throw() function disables cancellations for the duration
of the call.
This does seem to prevent deferred cancellations from ever being
delivered, alas.
-- Jamie