code: protected static PrimitiveIterator.OfLong createDelayStream(Duration delay, Duration jitter) {
          if (jitter.isZero()) {
              // No jitter, return an infinite stream of the delay duration
              long delayNanos = asClampedNanos(delay);
              return LongStream.generate(() -> delayNanos).iterator();
          } else {
              // Using jitter, compute the upper and lower bounds and return a stream of randomly distributed values
              long lowerLimitNanos = asClampedNanos(delay.minus(jitter));
              long upperLimitNanos = asClampedNanos(delay.plus(jitter));
              return ThreadLocalRandom.current().longs(lowerLimitNanos, upperLimitNanos).iterator();
          }
      }
docs: Returns a stream of times in nanoseconds, randomly distributed between delay-jitter and delay+jitter
  <p>
  protected only to allow unit testing
  
  @param delay  the delay duration
  @param jitter the jitter duration
  @return stream of times in nanoseconds within delay +/- jitter