This commit is contained in:
Licht 2014-11-18 12:19:19 +01:00
commit f75a93b5cf

View File

@ -18,6 +18,11 @@ public abstract class TimedThread extends Thread {
*/
private long workTime;
/**
* This is a quick hack :)
*/
private long runloops;
/**
* This method sets the actual working interval based on hz.
*
@ -32,6 +37,7 @@ public abstract class TimedThread extends Thread {
*/
public final void run() {
while (true) {
this.runloops++;
long workStart = System.nanoTime();
// do the actual work
this.work();
@ -41,8 +47,9 @@ public abstract class TimedThread extends Thread {
long timeToWait = this.workInterval - workTime;
//in case we are already running late, just print a warning and carry on!
if(timeToWait < 0) {
if(timeToWait < 0 && this.runloops > 50) { // runloops for filtering out game start delays
System.err.println("[" + this.getName() + "] workTime exceeds workInterval!:" + this.workTime + " > " + this.workInterval);
runloops = 100; // overflow protect
continue;
}
long msToWait = timeToWait / 1000000;