We're using some FSM library that allows you to define entry and exit actions.
For some reason, somebody needed to do this
fsm.Configure(State.A)
.Permit(Trigger.A, State.B)
.OnEntry(() =>
{
IsAuto = false;
fsm.Fire(Trigger.C);
})
This means that once the FSM gets the event Trigger.A, it will fire Trigger.C as part of the entry actions. Is that even correct?
This smells like a bad practice to me, but I would like to have a more academic answer to this.