W3C home > Mailing lists > Public > www-voice@w3.org > January to March 2013

More Problems with Preemption

From: Gavin Kistner <phrogz@me.com>
Date: Wed, 06 Feb 2013 22:26:33 +0000 (GMT)
To: www-voice@w3.org, www-voice@w3.org
Cc: Chris Nuernberger <chrisn@nvidia.com>
Message-id: <af019785-2467-472b-8514-0f17a54a1cbf@me.com>
A colleague of mine created a pathological preemption case to show problems with the current system. Consider:

<scxml xmlns="http://www.w3.org/2005/07/scxml" version="1.0">
  <parallel id="p0">
    <onentry><raise event="e"/></onentry>
    <state id="s0">
      <parallel id="p1">
        <state id='p1s0'><transition event='e' target='s0a'/></state>
        <state id='p1s1'><transition event='e' target='s0b'/></state>
      </parallel>
      <state id="s0a"/>
      <state id="s0b"/>
    </state>
  </parallel>
</scxml>

The event 'e' causes both transitions to be chosen by selectTransitions(). Both are 'type 2' transitions, and so the logic in preemptsTransition() causes neither to preempt the another. Both transition targets are entered, and now the state machine is in an invalid configuration where both s0a and s0b are active.

Is there a simple fix to the preemption logic for this? Or do we need to consider to simpler, more robust solution for determining whether the subgraphs affected by transitions overlap?
Received on Wednesday, 6 February 2013 22:27:01 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Wednesday, 6 February 2013 22:27:04 GMT