$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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