ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> boost
boost
Re: [boost] Re: [prereview request][fsm]
by E. Gladyshev other posts by this author
May 28 2004 5:03PM messages near this date
Re: [boost] Re: [prereview request][fsm] | Re: [boost] Re: [prereview request][fsm]
----- Original Message ----- 
From: "Rob Stewart" <stewart@[...].com> 
>  From: "E. Gladyshev" <eegg@[...].net>
>  > --- Rob Stewart <stewart@[...].com> wrote:
>  > > From: "E. Gladyshev" <eegg@[...].net>
>  >
>  > > > try{...}
>  > > > catch(...)
>  > > > {
>  > > > try { throw; }
>  > > > catch( type1 ) { ... }
>  > > > }
>  > > >
>  > > > is very different from
>  > > >
>  > > > try{...}
>  > > > catch( type1 ) {...}
>  >
>  > [...]
>  >
>  > > IOW, stack unwinding will occur for
>  > > both forms, it's just a question as to where the handler will be
>  > > found.
>  >
>  > 15.5.1/2
>  >     Note: in the situation where
>  >     no matching handler is found, it is implementation-defined whether
or
>  >     not  the  stack is unwound before terminate() is called.  In all
other
>  >     situations, the stack shall  not  be  unwound  before  terminate()
is
>  >     called
>  >
>  > Your claim that the stack unwinding will occur in both cases
>  > is based on an implementation-defined behavior. In fact,
>  > all implementations that I know about allows you disable
>  > the stack unwinding for unhandled exceptions.
>  > So it is not strictly portable nor generic.
> 
>  That's non-normative text, but it turns out that 15.3/9 covers
>  it:

I don't understant what you mean by "15.3/9 covers it"?

>     If no matching handler is found in a program, the function
>     terminate() is called; whether or not the stack is unwound
>     before this call to terminate() is implementationdefined
>     (15.5.1).
> 
>  So, OK, there is that slight difference, but why would you care?

I don't think that it is a slight difference. If you make an assumption
that all unhandled exceptions will eventually trigger
stack unwinding, but a specific implementation doesn't do that,
it is huge difference.
Such an implementation (legal implementation, btw) may break
a bunch of RAII based designs.

>  Why would this -- no stack unwinding for an unhandled exception
>  -- matter in boost::fsm?

Because boost::fsm doesn't allow me to discriminate
exception types and keep the stack from unwinding
(for unhandled exceptions) at the same time.

>  Put another way, what benefit does this
>  provide and does it outweight the benefits of the approach being
>  used now?

Sorry, what outweighs what?

Eugene

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Thread:
Andreas Huber
Andreas Huber
Andreas Huber
Darryl Green
Darryl Green
Darryl Green
Darryl Green
Andreas Huber
E. Gladyshev
Andreas Huber
Andreas Huber
E. Gladyshev
E. Gladyshev
Darryl Green
Andreas Huber
Johan Nilsson
Darryl Green
Andreas Huber
Andreas Huber
Rob Stewart
Andreas Huber
Rob Stewart
Johan Nilsson
Andreas Huber
Andreas Huber
Johan Nilsson
Johan Nilsson
Andreas Huber
Andreas Huber
Andreas Huber
Darryl Green
David Abrahams
Andreas Huber
Andreas Huber
Rob Stewart
Andreas Huber
Andreas Huber
Andreas Huber
Andreas Huber
David Abrahams
David Abrahams
David Abrahams
Andreas Huber
Andreas Huber
Darryl Green
David Bergman
David Abrahams
David Abrahams
David Abrahams
Andreas Huber
Andreas Huber
David Abrahams
Andreas Huber
Andreas Huber
Andreas Huber
Andreas Huber
Darryl Green
Andreas Huber
Robert Bell
David Abrahams
E. Gladyshev
Johan Nilsson
Jeff Flinn
Johan Nilsson
Andreas Huber
Jeff Flinn
E. Gladyshev
Andreas Huber
Andreas Huber
Iain K. Hanson
Robert Bell
David Abrahams
E. Gladyshev
Andreas Huber
Andreas Huber
David B. Held
Andreas Huber
Johan Nilsson
Johan Nilsson
Peter Dimov
Johan Nilsson
Topher Cooper
Johan Nilsson
Johan Nilsson
Andreas Huber
Robert Bell
Andreas Huber
Andreas Huber
Andreas Huber
E. Gladyshev
Andreas Huber
Andreas Huber
E. Gladyshev
E. Gladyshev
Andreas Huber
Andreas Huber
E. Gladyshev
David Abrahams
Andreas Huber
E. Gladyshev
E. Gladyshev
Rob Stewart
E. Gladyshev
E. Gladyshev
Rob Stewart
E. Gladyshev
Rob Stewart
E. Gladyshev
Andreas Huber
Andreas Huber
E. Gladyshev
Marshall Clow
Marshall Clow
E. Gladyshev
David Abrahams
Darryl Green
E. Gladyshev
Andreas Huber
Andreas Huber
Robert Bell
Darryl Green
Pavel Vozenilek
David Abrahams
Andreas Huber
David Abrahams
Gregory Colvin
Pavel Vozenilek
Andreas Huber
Robert Bell
Andreas Huber
Johan Nilsson
Andreas Huber
Andreas Huber
Johan Nilsson
Johan Nilsson
Rob Stewart
Johan Nilsson
Andreas Huber
Andreas Huber
David Abrahams
Andreas Huber
Andreas Huber
David Abrahams
Andreas Huber
Andreas Huber
Johan Nilsson
Rob Stewart
Kwee Heong Tan
David Abrahams
Andreas Huber
David Abrahams
David Abrahams
Andreas Huber
Andreas Huber
Andreas Huber
David Abrahams
Andreas Huber
John Fuller
David Abrahams
David Abrahams
Andreas Huber
Andreas Huber
Aleksey Gurtovoy
David Abrahams
David Abrahams
David Abrahams
Andreas Huber
David Abrahams
David Abrahams

Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved