@Override public void run() { sleepNanos(sleepNanos); callerThread.interrupt(); } }
/** * Sleeps a random amount of time. * * The call is ignored if maxDelayNanos equals or smaller than zero. * * @param random the Random used to randomize * @param maxDelayNanos the maximum sleeping period in nanoseconds */ public static void sleepRandomNanos(Random random, long maxDelayNanos) { if (maxDelayNanos <= 0) { return; } long randomValue = Math.abs(random.nextLong() + 1); sleepNanos(randomValue % maxDelayNanos); }
/** * Sleeps a random amount of time. * <p> * The call is ignored if maxDelayNanos equals or smaller than zero. * * @param random the Random used to randomize * @param maxDelayNanos the maximum sleeping period in nanoseconds */ public static void sleepRandomNanos(Random random, long maxDelayNanos) { if (maxDelayNanos <= 0) { return; } long randomValue = Math.abs(random.nextLong() + 1); sleepNanos(randomValue % maxDelayNanos); }
@Override public void run() { while (!shutdown.get()) { long startedNanos = System.nanoTime(); long currentTimestamp = System.currentTimeMillis(); boolean runningTestFound = hasRunningTests(); updateTrackers(currentTimestamp); sendPerformanceStats(); writeStatsToFiles(currentTimestamp); long elapsedNanos = System.nanoTime() - startedNanos; if (intervalNanos > elapsedNanos) { if (runningTestFound) { sleepNanos(intervalNanos - elapsedNanos); } else { sleepNanos(WAIT_FOR_TEST_CONTAINERS_DELAY_NANOS - elapsedNanos); } } else { LOGGER.warn(getName() + ".run() took " + NANOSECONDS.toMillis(elapsedNanos) + " ms"); } } }