Added providers

This commit is contained in:
Flare Microsystems
2024-03-07 14:12:38 -08:00
parent 701db6e22c
commit 0564334f93
51 changed files with 690 additions and 528 deletions

View File

@@ -0,0 +1,51 @@
package com.flaremicro.visualforecast;
import java.util.concurrent.locks.LockSupport;
import com.flaremicro.visualforecast.interfaces.Tickable;
public class TickThread implements Runnable {
private final Tickable tickable;
private boolean running = true;
private final long sleepNanos;
//private long nextTick = 0;
TickThread(Tickable tickable, long sleepNanos) {
this.tickable = tickable;
this.sleepNanos = sleepNanos;
}
TickThread(Tickable tickable, int ticksPerSecond) {
this(tickable, (long) ((1/(double)ticksPerSecond) * 1000000000L));
}
public void end() {
this.running = false;
}
public void run() {
long nanosLost = 0;
while (running) {
/*while(System.nanoTime() < nextTick)
{
try
{
Thread.sleep(1);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
nextTick = System.nanoTime() + sleepNanos;
tickable.tick();*/
tickable.tick();
nanosLost -= System.nanoTime();
//Unnecessary conditional?
//if(sleepNanos+nanosLost > 0)
LockSupport.parkNanos(sleepNanos+nanosLost);
nanosLost = System.nanoTime();
}
}
}