|
Boost : |
From: Andreas Huber (ah2003_at_[hidden])
Date: 2004-05-26 07:13:29
David Abrahams <dave <at> boost-consulting.com> writes:
> What does "terminate the state machine" mean?
It means exiting all remaining active states.
> 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).
Ok, opinion taken. I'll update the rationale section and try to very clearly
explain:
- How one typically handles errors in traditional FSM frameworks (which don't
allow for failing actions) and how this led to the design of the error
handling mechanism in boost::fsm, which essentially only automates what you
have to do manually otherwise.
- Why failing exit actions are a bad idea.
I'm looking forward to convince you in the formal review :-).
Regards,
Andreas
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk