+ // Timeout is in minutes
+ timeout = config.getInt("timeout", 0);
+ timeoutTimer = null;
+ }
+
+ // Create a task for timer to do a timeout
+ private class TimeoutTask extends TimerTask {
+
+ ThreadInfo ti;
+
+ public TimeoutTask(ThreadInfo ti) {
+ this.ti = ti;
+ }
+
+ @Override
+ public void run() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("Execution timeout!\n");
+ Instruction nextIns = ti.createAndThrowException("java.lang.RuntimeException", sb.toString());
+ ti.setNextPC(nextIns);
+ }