code: public static long currentTime() {
          long now = MILLISECONDS.toNanos(millisecondSupplier.getAsLong());
          while (true) {
              long lastTime = lastTimeHolder.get();
              if (now <= lastTime)
                  return lastTime;
              if (lastTimeHolder.compareAndSet(lastTime, now))
                  return now;
          }
      }
docs: Returns a non-decreasing number, assumed to be used as a "timestamp".
  <p>
  <p>Approximate system time interval between two calls of this method is retrievable via
  {@link #systemTimeIntervalBetween(long, long, TimeUnit)}, applied to the returned values
  from those {@code currentTime()} calls.
  <p>
  <p>Safe and scalable for concurrent use from multiple threads.
  
  @return the current timestamp