I guessed that was the problem indeed I followed the event go pushed into the event queue but it miraculously disappears somewhere very strange.

If I would make an event which encapsulates the message I would still need to send it from another thread and then I could only use the statemachine.process_event( EvEvent() ) mechanism. I tried that and the behavior was not exactly what I needed. The calling function would not leave the process_event method and hold op the system.

Maybe I should start thinking about rewriting the code to use the asynchronous_state_machine.


On Wed, Mar 25, 2009 at 16:13, Andreas Huber <ahd6974-spamboostorgtrap@yahoo.com> wrote:
Hi Iwan

[snip]
I tried this->post_event( EvNewFrame() ); // no effect
and this->post_event( boost::intrusive_ptr<EvNewFrame>( new EvNewFrame( ) ) ); // no effect

post_event is intended to be called only from within a react member function or an entry-, exit- or transition action. The documentation isn't terribly clear on this but it does say that calling post_event only pushes the event into the queue. That is, post_event does *not* process the event, which is why you don't see the expected transition.

I'm wondering whether it wouldn't be *much* easier to simply pack the TT_CANMsg into an event and then let the state_machine process that event?

Regards,

--
Andreas Huber

When replying by private email, please remove the words spam and trap
from the address shown in the header.

_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users