I have two FSMs that run in parallel. One of them (sender) sends global events for which the other one (receiver) checks.
The problem I’m facing is that this only works correctly if I explicitly enable the sender FSM _after_ the receiver FSM.
If the sender FSM is enabled before the receiver FSM, every event is fired TWICE, which is a huge issue obviously.
In other words, this works:
receiverFSM.enabled = true;
senderFSM.enabled = true;
This does NOT work:
senderFSM.enabled = true;
receiverFSM.enabled = true;
Please see the attached FSMs which demonstrate the bug.
Thanks for the reproduction graphs. Indeed there is a bug here.
I have send you an email containing the fix to this.
Let me know if this works for you.