Hi,
Then, you need to compose this logic into at least two fsm. one that received the global events, checks if it can proceed, and calls this looping fsm only when you want.
So create a specific global event "PROCEED WITH LOOP" or something, and this global event is only called if you really need to, the first fsm will catch other global events, and in turn send this event if indeed the lopp has to start.
Does that make sense?
Bye,
Jean