package javax.safetycritical; import vm.Memory; class ScjMissionSequencerProcess extends ScjProcess { ScjMissionSequencerProcess(ManagedSchedulable handler, int[] stack) { super(handler, stack); } protected void gotoNextState(PriorityFrame pFrame) { if (state == ScjProcess.State.HANDLED) { // missionSequencer terminates if (index == -2) { // outer sequencer msObject.cleanUp(); } else { //devices.Console.println("---- ScjMissionSequencerProcess: " + index + ";target: " + target); Mission m = Mission.getMission(); if (m != null) { msObject.cleanUp(); Mission.getMission().msSetForMission.removeMSObject(msObject); } } state = ScjProcess.State.TERMINATED; return; } else if (state == ScjProcess.State.WAITING) { ; } else if (state == ScjProcess.State.REQUIRELOCK) { ; } else { state = ScjProcess.State.READY; pFrame.readyQueue.insert(this); } } void switchToPrivateMemArea() { Memory.switchToArea(((ManagedEventHandler)msObject).privateMemory.getDelegate()); } }