Boost logo

Boost :

Subject: Re: [boost] [MSM] event deferral and dispatching with base event
From: Christophe Henry (christophe.j.henry_at_[hidden])
Date: 2011-08-28 13:13:46


Richard Szabo wrote:
>> I'm running the attached test program it generates the following output :
>>
>> entering: Idle MS1_
>> leaving: Idle
>> Action: MS1::onEvent1
>> entering: RunningStateMachine MS1_
>> entering: RunningStateMachine::PseudoEntry1
>> leaving: RunningStateMachine::PseudoEntry1
>> entering: Inner1 RunningStateMachine_
>> entering: InnerState11
>> FwdGuard: returns:0, event: event5
>> FwdGuard: returns:0, event: event1
>> FwdGuard: returns:0, event: event1
>> FwdGuard: returns:0, event: event5
>> FwdGuard: returns:0, event: event1
>> FwdGuard: returns:0, event: event1
>> FwdGuard: returns:0, event: event5
>> FwdGuard: returns:0, event: event1
>> FwdGuard: returns:0, event: event1
>> FwdGuard: returns:0, event: event5
>
>
>Ok if I use UML like definition for the event deferral than at least
>event 5 is not getting dispatched each time thanks for that.
>And actually I can leave with the situation that even1 is dispatched 2
>times it only happens when no trans is taken in sub state machine so
>than it is not hurting.

Hi Richard,
I unfortunately didn't manage to find a solution before my vacations, but I
now had more time and found a way around the multiple event1 dispatches.
You can get it from trunk (rev. 74109).
This, combined with your event5 deferring the UML way, will now get you the
expected behaviour.

HTH,
Christophe


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk