From c91c5aa93d701eccda88112ab4a078b5057d6c33 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Mon, 19 May 2008 00:55:18 +0000 Subject: Bugfix in the TaskManager.insert method. --- sources/core/VSProcess.java | 6 ++---- sources/core/VSTask.java | 8 ++++++++ sources/core/VSTaskManager.java | 6 +++++- 3 files changed, 15 insertions(+), 5 deletions(-) (limited to 'sources/core') diff --git a/sources/core/VSProcess.java b/sources/core/VSProcess.java index 7e50abe..aa754a2 100644 --- a/sources/core/VSProcess.java +++ b/sources/core/VSProcess.java @@ -164,10 +164,8 @@ public final class VSProcess extends VSPrefs { final long currentGlobalTimestep = globalTime - this.globalTime; this.globalTime = globalTime; - //if (!isCrashed) { - localTime += currentGlobalTimestep; - clockOffset += currentGlobalTimestep * (double) clockVariance; - //} + localTime += currentGlobalTimestep; + clockOffset += currentGlobalTimestep * (double) clockVariance; while (clockOffset >= 1) { clockOffset -= 1; diff --git a/sources/core/VSTask.java b/sources/core/VSTask.java index a476e35..7c2b067 100644 --- a/sources/core/VSTask.java +++ b/sources/core/VSTask.java @@ -47,6 +47,13 @@ public class VSTask implements Comparable { return false; } + public boolean timeOver() { + if (isGlobalTimed) + return taskTime < process.getGlobalTime(); + + return taskTime < process.getTime(); + } + public boolean equals(VSTask task) { return event.equals(task.getEvent()) && taskTime == task.getTaskTime() @@ -176,6 +183,7 @@ public class VSTask implements Comparable { else if (taskTime > task.getTaskTime()) return 1; + /* If it's a ProtocolEvent, it should get handled first */ boolean a = event instanceof ProtocolEvent; boolean b = task.getEvent() instanceof ProtocolEvent; diff --git a/sources/core/VSTaskManager.java b/sources/core/VSTaskManager.java index 7e24cf3..4f79d16 100644 --- a/sources/core/VSTaskManager.java +++ b/sources/core/VSTaskManager.java @@ -184,8 +184,12 @@ public class VSTaskManager { } private void insert(VSTask task) { - if (task.isGlobalTimed()) + if (task.timeOver()) + fullfilledProgrammedTasks.addLast(task); + + else if (task.isGlobalTimed()) globalTasks.add(task); + else tasks.add(task); } -- cgit v1.2.3