This is the mail archive of the gcc-patches@gcc.gnu.org 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: [RFC] C++ vs forced unwinding


On 07-Apr-2003, Mark Mitchell <mark at codesourcery dot com> wrote:
> 
> FWIW, I don't think "throw ()" should have any affect here.  Cancelling a
> thread is not throwing an exception, implementation similarities aside.

Well, the downside of that approach is that it's already too hard to
write exception-safe code (beyond the ability of most programmers).
When you introduce cancels as well, then programmers need to think about
writing cancel-safe code.  If stack unwinding for thread cancellation
is allowed at calls to functions declared "throw ()", then I think it
will harder for programmers to write code which is exception-safe and
cancel-safe.

The C++ standard specifies many standard library functions as being
"throw ()", and this provides an important guarantee which helps
programmers that want to write exception-safe code.  If these functions
might be interrupted by a thread cancellation, then I suspect that
writing exception-safe and cancel-safe code will be very difficult.

-- 
Fergus Henderson <fjh at cs dot mu dot oz dot au>  |  "I have always known that the pursuit
The University of Melbourne         |  of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh>  |     -- the last words of T. S. Garp.

--------------------------------------------------------------------
This message could not be encrypted because no digital certificate
was found for your address. However, you can encrypt your reply with
the certificate attached below. Details at www.unicrypt.com.au

Attachment: smime.p7s
Description: S/MIME cryptographic signature


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