|
Boost Users : |
Subject: Re: [Boost-users] [msm] Event does not get processed after exiting aninterrupt state
From: christophe.j.henry_at_[hidden]
Date: 2015-04-27 01:22:15
Hi Christopher,
>I got a state machine with 2 regions. The second region has two states
>("Run" and "Interrupt"), one is an interrupt state. The region starts in
>the non interrupt state, just like in the MSM example "Orthogonal regions,
>terminate state, event deferring".
>
>The event called Ev_Resume leads to a transition from state Interrupt back
>to state Run. In on_entry() of Run I fire an event which never gets
>processed.
>Is at that time the FSM still interrupted, i.e. event processing still
>blocked?
Correct. This is the default. Not a great one, but I'm wary of breaking
existing code.
In your on_entry, the flag is still active.
You can override this in the front-end. See
http://www.boost.org/doc/libs/1_58_0/libs/msm/doc/HTML/ch03s05.html#d0e2714
I think a better default would be: active_state_switch_after_exit.
HTH,
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