Boost logo

Boost Users :

Subject: [Boost-users] [MSM] stack overflow happens when there is afalse-guard anonymous transition
From: Christophe Henry (christophe.j.henry_at_[hidden])
Date: 2010-09-06 16:23:50


>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


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net