Commit 6483cbec by Mark Wielaard Committed by Mark Wielaard

* java/util/TimerTask.java: New version from Classpath.

From-SVN: r39801
parent 3f57b973
2001-02-17 Mark Wielaard <mark@klomp.org> 2001-02-17 Mark Wielaard <mark@klomp.org>
* java/util/TimerTask.java: New version from Classpath.
2001-02-17 Mark Wielaard <mark@klomp.org>
Remerge with Classpath Remerge with Classpath
(changes by Bryce McKinlay <bryce@albatross.co.nz>) (changes by Bryce McKinlay <bryce@albatross.co.nz>)
* java/io/DataInputStream.java (readBoolean): Use convertToBoolean(). * java/io/DataInputStream.java (readBoolean): Use convertToBoolean().
......
...@@ -7,7 +7,7 @@ GNU Classpath is free software; you can redistribute it and/or modify ...@@ -7,7 +7,7 @@ GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option) the Free Software Foundation; either version 2, or (at your option)
any later version. any later version.
GNU Classpath is distributed in the hope that it will be useful, but GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
...@@ -58,74 +58,77 @@ package java.util; ...@@ -58,74 +58,77 @@ package java.util;
* @since 1.3 * @since 1.3
* @author Mark Wielaard (mark@klomp.org) * @author Mark Wielaard (mark@klomp.org)
*/ */
public abstract class TimerTask implements Runnable { public abstract class TimerTask implements Runnable
{
/** /**
* If positive the next time this task should be run. * If positive the next time this task should be run.
* If negative this TimerTask is canceled or executed for the last time. * If negative this TimerTask is canceled or executed for the last time.
*/ */
long scheduled; long scheduled;
/** /**
* If positive the last time this task was run. * If positive the last time this task was run.
* If negative this TimerTask has not yet been scheduled. * If negative this TimerTask has not yet been scheduled.
*/ */
long lastExecutionTime; long lastExecutionTime;
/** /**
* If positive the number of milliseconds between runs of this task. * If positive the number of milliseconds between runs of this task.
* If -1 this task doesn't have to be run more then once. * If -1 this task doesn't have to be run more then once.
*/ */
long period; long period;
/** /**
* If true the next time this task should be run is relative to * If true the next time this task should be run is relative to
* the last scheduled time, otherwise it can drift in time. * the last scheduled time, otherwise it can drift in time.
*/ */
boolean fixed; boolean fixed;
/** /**
* Creates a TimerTask and marks it as not yet scheduled. * Creates a TimerTask and marks it as not yet scheduled.
*/ */
protected TimerTask() { protected TimerTask()
this.scheduled = 0; {
this.lastExecutionTime = -1; this.scheduled = 0;
} this.lastExecutionTime = -1;
}
/** /**
* Marks the task as canceled and prevents any further execution. * Marks the task as canceled and prevents any further execution.
* Returns true if the task was scheduled for any execution in the future * Returns true if the task was scheduled for any execution in the future
* and this cancel operation prevents that execution from happening. * and this cancel operation prevents that execution from happening.
* <p> * <p>
* A task that has been canceled can never be scheduled again. * A task that has been canceled can never be scheduled again.
* <p> * <p>
* In this implementation the TimerTask it is possible that the Timer does * In this implementation the TimerTask it is possible that the Timer does
* keep a reference to the TimerTask until the first time the TimerTask * keep a reference to the TimerTask until the first time the TimerTask
* is actually scheduled. But the reference will disappear immediatly when * is actually scheduled. But the reference will disappear immediatly when
* cancel is called from within the TimerTask run method. * cancel is called from within the TimerTask run method.
*/ */
public boolean cancel() { public boolean cancel()
boolean prevented_execution = (this.scheduled >= 0); {
this.scheduled = -1; boolean prevented_execution = (this.scheduled >= 0);
return prevented_execution; this.scheduled = -1;
} return prevented_execution;
}
/** /**
* Method that is called when this task is scheduled for execution. * Method that is called when this task is scheduled for execution.
*/ */
public abstract void run(); public abstract void run();
/** /**
* Returns the last time this task was scheduled or (when called by the * Returns the last time this task was scheduled or (when called by the
* task from the run method) the time the current execution of the task * task from the run method) the time the current execution of the task
* was scheduled. When the task has not yet run the return value is * was scheduled. When the task has not yet run the return value is
* undefined. * undefined.
* <p> * <p>
* Can be used (when the task is scheduled at fixed rate) to see the * Can be used (when the task is scheduled at fixed rate) to see the
* difference between the requested schedule time and the actual time * difference between the requested schedule time and the actual time
* that can be found with <code>System.currentTimeMillis()</code>. * that can be found with <code>System.currentTimeMillis()</code>.
*/ */
public long scheduledExecutionTime() { public long scheduledExecutionTime()
return lastExecutionTime; {
} return lastExecutionTime;
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment