private App() { running = true; String lastTickFromDb = AppStateController.singleton().getState(AppState.LAST_TICK); if (lastTickFromDb == null) { lastTick = Instant.now(); } else { lastTick = Instant.ofEpochMilli(Long.parseLong(lastTickFromDb)); } }
private void mainLoop() { while (running) { Instant tickStart = Instant.now(); elapsedSinceLastTick = Duration.between(lastTick, tickStart); lastTick = tickStart; AppStateController.singleton() .updateState(AppState.LAST_TICK, Long.toString(tickStart.toEpochMilli())); sleepForRestOfTick(tickStart); } }