
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