public void waitForNextTick() throws InterruptedException { // no point waiting, just carry on if (tickPeriod <= MIN_PERIOD) { return; } synchronized (ticks) { ticks.wait(); } }