@@ -15,4 +15,6 @@ public interface ITimerHandler {
public void setTimer(TimeEvent event, long time, long cycleStartTime);
public void resetTimer(TimeEvent event);
+
+ public void cancel();
}
@@ -66,4 +66,11 @@ public class TimerHandler implements ITimerHandler {
timerTaskMap.remove(event);
+ /**
+ * Cancels all running TimersTasks
+ */
+ public void cancel() {
+ timer.cancel();
+ }
@@ -66,8 +66,7 @@ public class CrossingDemo {
Thread thread = new Thread() {
@Override
public void run() {
- TimerHandler timerHandler = new TimerHandler(statemachine);
- statemachine.setTimerHandler(timerHandler);
+ statemachine.setTimerHandler(new TimerHandler(statemachine));
statemachine.entry();
while (!isInterrupted()) {
statemachine.runCycle();
@@ -82,6 +81,7 @@ public class CrossingDemo {
interrupt();
+ statemachine.getTimerHandler().cancel();
};
thread.start();
@@ -25,6 +25,8 @@ public interface ITimerHandler {
«ENDFILE-»
«ENDDEFINE»
@@ -76,6 +76,13 @@ public class TimerHandler implements ITimerHandler {
@@ -49,6 +49,7 @@ public class TestLocalActionsCycleBasedStatemachine {
@After
public void tearDown() {
statemachine = null;