SCION-CORE icon indicating copy to clipboard operation
SCION-CORE copied to clipboard

events stuck in internal queue when event at head is ignored

Open mattoshry opened this issue 7 years ago • 1 comments

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 avatar Jan 26 '18 18:01 mattoshry

@mattoshry Should be fixed in the latest release (4.3.1). Please try this again. Thanks!

jbeard4 avatar Jun 23 '18 15:06 jbeard4