$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
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