The purpose is to detect/prevent an FSM that has spun out of control.
Primary limits that come to mind:
execution time per big step
max count per event name
Consider treating 'error' events (error, error.*) as special / single bucket with its own limit.
Consider observing/limiting unhandled event count
Provide an interface to inform/notify the interpreter context when one of these limits has been exceeded so that the context can take appropriate action (e.g. terminate the session).
Here are a few bad scxml documents:
1) infinite raise
2) infinite send #_internal
3) infinite send #scxml
The purpose is to detect/prevent an FSM that has spun out of control.
Primary limits that come to mind:
Consider treating 'error' events (error, error.*) as special / single bucket with its own limit. Consider observing/limiting unhandled event count
Provide an interface to inform/notify the interpreter context when one of these limits has been exceeded so that the context can take appropriate action (e.g. terminate the session).
Here are a few bad scxml documents: 1) infinite raise 2) infinite send #_internal 3) infinite send #scxml