diff --git a/src/schule/ngb/zm/tasks/DelayedTask.java b/src/schule/ngb/zm/tasks/DelayedTask.java index 7597ab3..a39ece6 100644 --- a/src/schule/ngb/zm/tasks/DelayedTask.java +++ b/src/schule/ngb/zm/tasks/DelayedTask.java @@ -56,10 +56,14 @@ public abstract class DelayedTask extends Task implements Delayed { } } + initialize(); + running = true; this.update(0.0); running = false; done = true; + + finish(); } } diff --git a/src/schule/ngb/zm/tasks/FrameSynchronizedTask.java b/src/schule/ngb/zm/tasks/FrameSynchronizedTask.java index 416b9db..454818a 100644 --- a/src/schule/ngb/zm/tasks/FrameSynchronizedTask.java +++ b/src/schule/ngb/zm/tasks/FrameSynchronizedTask.java @@ -19,6 +19,8 @@ public abstract class FrameSynchronizedTask extends Task { @Override public void run() { + initialize(); + running = true; int lastTick = 0; Object lock = Zeichenmaschine.globalSyncLock; @@ -40,6 +42,8 @@ public abstract class FrameSynchronizedTask extends Task { running = false; done = true; + + finish(); } @Override @@ -47,4 +51,5 @@ public abstract class FrameSynchronizedTask extends Task { return false; } + } diff --git a/src/schule/ngb/zm/tasks/RateLimitedTask.java b/src/schule/ngb/zm/tasks/RateLimitedTask.java index aadc06d..8f1be37 100644 --- a/src/schule/ngb/zm/tasks/RateLimitedTask.java +++ b/src/schule/ngb/zm/tasks/RateLimitedTask.java @@ -10,6 +10,8 @@ public abstract class RateLimitedTask extends Task { return; } + initialize(); + // current time in ns long beforeTime = System.nanoTime(); // store for deltas @@ -48,6 +50,8 @@ public abstract class RateLimitedTask extends Task { running = false; done = true; + + finish(); } } diff --git a/src/schule/ngb/zm/tasks/Task.java b/src/schule/ngb/zm/tasks/Task.java index a8ae158..56ac04a 100644 --- a/src/schule/ngb/zm/tasks/Task.java +++ b/src/schule/ngb/zm/tasks/Task.java @@ -21,4 +21,10 @@ public abstract class Task implements Runnable, Updatable { running = false; } + protected void initialize() { + } + + protected void finish() { + } + }