2 Aug
2008
2 Aug
'08
6:40 p.m.
You can't, see above. Two asynchronous state machine must only exchange data in a, well, asynchronous manner. That is, have the requesting state machine post an event to the other FSM, which in turn posts the requested data in an event back to the requesting FSM. Of course you'll have to be careful to always *copy* the data and never let both state machines access the same data through e.g. pointers.
Lets assume, this "shared data" is defined externally to the FSMs, and then a ptr to the data is passed to them all (in the constructors or by means of an event). If this data is accessed in a thread-safe manner, then such a design doesn't seem to be dangerous, does it? Thanks, Igor'.