
Hi
I have a state [A] with three orthogonal substates [X,Y,Z]. The states [A] and [X] provide custom reactions for an event [E]. If processing event [E] the state machine calls first the custom reaction in [A]. This method returns with forward_event() ; After this the custom reaction in [A] is called again. And then custom reaction in [X] is called.
This is a little cumbersome. Why is the custom reaction in [A] called twice?
And why is the outermost state called first? It would be something easier to work vice versa. First the more "specialized" inner states could do there work and then the "generalized" outer states can do the everything else.
This behavior is as designed, for an in-depth description please see: http://www.boost.org/libs/statechart/doc/reference.html#process_event Reaction search always starts with an *arbitrary* innermost state and then first works its way outward. Only when the outermost state has been reached is the next innermost state checked for a suitable reaction. This behavior stems form the fact that all reactions defined in outer states are "inherited" by their direct and indirect inner states, as mandated by the UML standard. What are you trying to achieve? Maybe I can suggest a more suitable implementation. HTH, -- Andreas Huber When replying by private email, please remove the words spam and trap from the address shown in the header.