Re: [boost] [msm] Problems with no_message_queue and pseudo exit states

I know your are quiet bussy releasing msm but we found something and we do not know whether it is the intended behaviour or a bug.
We implemented a little state machine with a submachine. The submachine has an pseudo exit state. If we use "typedef no_message_queue" in the state machine as well as in the submachine, then the state machines get somehow mixed up and do not act normally once you leave the submachine via the pseudo exit state. In that case msm does not exit the pseudo exit state.
We followed almost your example that you provide in the documentation.
Is that known to you? Does it make sense to fix that or are there serious reasons why msm behaves like that?
It's clearly a doc bug, I thought I had written it, but looks like I didn't :( Pseudo exit states are implemented by generating a new event (convertible from the original one) upon entering the pseudo entry, in order to get the UML priority right (deepest-level transitions tried first for a given event). This effectively makes pseudo exit states and no_message_queue incompatible, at least for the containing machine. I'm not completely happy with this implementation so this one also is on my radar. Thanks for reporting this. I wanted to add during the WE the points you already reported into the doc so I will add this restriction too. If I forget nothing: - pseudo exit points / no_message_queue - no explicit entry to submachines at the moment - references in the forwarding constructor with ref/cref - add some explanations for the entry state / explicit entry syntax If I forgot something, we still have some time before the release. Regards, Christophe
participants (1)
-
Christophe Henry