[MSM] stack overflow happens when there is afalse-guard anonymous transition
When start() got called in main(), it will enter a endless reentering between state_machine::process_event() and >state_machine::handle_eventless_transitions_helper::process_completion_event(). Finally it caused a stack overflow.
Could somebody please help me to fix this problem?
I just committed a tentative fix into the trunk: - completion events are only tried if the previous transition was successful. This should prevent the overflow and some border cases. - calling fsm.process_completion() will retry the completion event if the guard returned false. The event is sent only once for every call of process_completion() - the completion events are, standard conforming, tried before the event queues If it works and we all agree this is the right solution, I will keep it. Thanks, Christophe
participants (1)
-
Christophe Henry