On Fri, Jun 10, 2011 at 12:33 PM, Oksana Kolach <[email protected]> wrote: > Hello everybody, > > which possibilities exists to terminate an SCXML-Executor, that is running > in an infinit loop? > <snip/>
SCXML does not provide any in-built safeguards against infinite loops. Like most languages, its possible to write such loops (in this case, as back and forth state transitions). > > Background: > > My SCXML-state machine contains a loop. > > If the SCXML-state machine is loaded by the executor and the executor is set > to "go()", then the executor is never ending. > > To terminate this infinite loop after a certain time, I could start the > executor into another java-thread and kill this thread after the time-limit > is reached. > > But this solution is not the best one I think. > <snap/> Right, I'd say the state machine is defective i.e. it raises the question why it contains an infinite loop in the first place -- I'd recommend analyzing that at a modeling level using the knowledge of the domain and usecase to remove such loops in favor of any number of alternatives (custom actions, facets of the external communications module - send, invoke etc.). > > Has anyone a better idea? > > Exists there something like a watchdog-timer-method > (http://en.wikipedia.org/wiki/Watchdog_timer)? > <snip/> You could easily implement such in SCXML itself using delayed send coupled with a near-root level transition that kicks the state machine out of the loopy bits :-) -Rahul > > > Thanks in advance. > > O.K. > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
