Fwd: [MSM] exit_ps stuks in case of outer state machine uses Row with event to event base class

Thanks Christophe I will try it out but we use the queue anyhow because we send signals to our self some cases. It was just a copy paste mistake for the example to disable queues. the real problem is the constructor if I define this : event4 (const event3& evt_) : baseEvent() { } than it works (after enabling the queue). So I don't get it why it is compiles ..... and now I have to figure out what has changed in our real code which hides the copy constructor ..... Thanks for your support PS : We update to latest MSM time to time and even using new features of it like Enqueueing events for later processing Thanks Richard On 15 June 2011 06:42, Christophe Henry <christophe.j.henry@googlemail.com> wrote:
3. This one is my fault and might be a problem for you as you seek performance. I think we discussed this but I forgot it in the doc. Pseudo exits require the message queue and you deactivated it with: typedef int no_message_queue;
Thinking again about it, as you have the newest MSM version (time for a bit of advertisement for the new version ;-) ), there is now a way around the queue. The exit point needs the queue because it will process an event4 during processing of event3, so that MSM has time to update its current state before processing event4. But this is only because MSM does this after the transition (the UML standard "forgot" to specify this point). The newest version allows you to override this and decide that this updating job will be done for example before the transition is taken (after the guard chooses the transition of course), or after the exit action, etc. To do this, add into every state machine:
typedef msm::active_state_switch_before_transition active_state_switch_policy;
Now you don't need the queue. Doc is there: http://svn.boost.org/svn/boost/trunk/libs/msm/doc/HTML/ch03s05.html#backend-...
Regards, Christophe _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

So I don't get it why it is compiles ..... and now I have to figure out what has changed in our real code which hides the copy constructor
This one really surprises me too. And even more that it also seems to happen with g++.
PS : We update to latest MSM time to time and even using new features of it like Enqueueing events for later processing
Ah I see you're up-to-date :) Interestingly, this and the active state change stuff were things I needed for myself so I added them in the hope someone else would need them. Great that it worked :) Regards, Christophe
participants (2)
-
Christophe Henry
-
Richard Szabo