public override void MoveOneStep(Valuation GlobalEnv, List <Configuration> list) { System.Diagnostics.Debug.Assert(list.Count == 0); FirstProcess.MoveOneStep(GlobalEnv, list); for (int i = 0; i < list.Count; i++) { Configuration step = list[i]; if (step.Event != Constants.TERMINATION) { Interrupt inter = new Interrupt(step.Process, SecondProcess); step.Process = inter; } } List <Configuration> list2 = new List <Configuration>(); SecondProcess.MoveOneStep(GlobalEnv, list2); for (int i = 0; i < list2.Count; i++) { Configuration step = list2[i]; if (step.Event == Constants.TAU) { Interrupt inter = new Interrupt(FirstProcess, step.Process); step.Process = inter; } //if(step.Event == Constants.TAU) //{ // throw new RuntimeException("Tau event cannot be an interrupting event in process (" + this.ToString() + ")!"); //} list.Add(step); } }