Boost logo

Boost Users :

Subject: Re: [Boost-users] [msm] Stuck in pseudo exit
From: christophe.j.henry_at_[hidden]
Date: 2015-03-02 01:41:43

>I have got a sub state machine (called Calibrate) which is exited via a
>pseudo exit on an event called Ev_Exit. The event is triggered on the
>return of a synchronous D-Bus call. So far everything works fine.
>Now I wanted to use an async D-Bus call and trigger the event in the
>finished-handler of the asynchronous D-Bus call. I can see that the event
>is released and that the transition into the pseudo exit takes place but
>the control is not given back to the outer state machine, i.e. the
>following transition in the outer state machine is not executed:
>Row < Calibrate::exit_pt<PseudoExit> , Ev_Exit , CheckNFC , none ,
>none >,
>Instead I get the log output that there is no transition for event Ev_Exit
>in the sub machine:

>I'm using boost 1.53. The program is not multi-threaded and I'm using
>Glib's main loop.

it's hard to answer without a minimal code example. Could you provide one?
I see two possible reasons:
- process_event is not called on the outer fsm but the inner
- some older version of msm had a bug with pseudo entry. I don't remember
exactly which one but 1.53 could be. Could you try with a newer version?

If you provide me a minimal example (on the list or privately if you prefer)
I will have a look at this.


Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at