|
Boost : |
From: David Abrahams (dave_at_[hidden])
Date: 2004-05-26 06:34:21
"Andreas Huber" <ah2003_at_[hidden]> writes:
>> Is that superstate always a reasonable place to end up upon failure?
>
> Well, you don't excatly end up there, right? The superstate (more accurately
> the outermost unstable state) is only a "container" for reaction(s) to the
> exception_thrown event. If such a reaction is found and executed it *must*
> make a transition to another state (sort of a safe haven) or terminate the
> state machine itself.
What does "terminate the state machine" mean?
> Only then are we stable again. To answer your question: Yes, I
> believe so.
>
>> FWIW, I don't know what an orthogonal region is, and I don't have time
>> to learn right now, so I'm probably missing a lot.
>
> I don't think you are missing that much. I hope I have managed to convince
> you that everything works fine for state machines without orthogonal
> regions.
I wish you had; I'll just have to take your word for it because I'm
out of time for discussion. Your method of handling errors as
described above seems (with my very shallow understanding) a bit
capricious and hard-to-manage to me, and it seems strange to keep that
system while ruling out a chance for strong-guarantee behavior (where
an exit action may throw).
> Orthogonal regions do complicate the matter but not by a lot.
OK.
-- Dave Abrahams Boost Consulting http://www.boost-consulting.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk