SCION-CORE
SCION-CORE copied to clipboard
events stuck in internal queue when event at head is ignored
Per mainEventLoop described in [scxmlAlgo], macrostepDone remains false until both enabledTransitions.isEmpty and internalQueue.isEmpty.
The impl at [performBigStep] and [performBigStepAsync] only checks the former condition.
Repro:
<scxml version="1.0"
xmlns="http://www.w3.org/2005/07/scxml">
<state id="uber">
<state id="s1">
<transition event="e2" target="pass"/>
<onentry>
<raise event="e1"/>
<raise event="e2"/>
</onentry>
</state>
</state>
<final id="pass">
<onentry>
<log expr="'RESULT: pass'" label="TEST"/>
</onentry>
</final>
</scxml>
[scxmlAlgo] https://www.w3.org/TR/scxml/#AlgorithmforSCXMLInterpretation [performBigStep]: https://github.com/jbeard4/SCION-CORE/blob/master/lib/scion.js#L779 [performBigStepAsync]: https://github.com/jbeard4/SCION-CORE/blob/master/lib/scion.js#L809
@mattoshry Should be fixed in the latest release (4.3.1). Please try this again. Thanks!