code: public boolean waitForInitialCreate(long timeout, TimeUnit unit) throws InterruptedException
      {
          Preconditions.checkState(state.get() == State.STARTED, "Not started");
  
          CountDownLatch localLatch = initialCreateLatch.get();
          return (localLatch == null) || localLatch.await(timeout, unit);
      }
docs: Block until the either initial node creation initiated by {@link #start()} succeeds or
  the timeout elapses.
  
  @param timeout the maximum time to wait
  @param unit    time unit
  @return if the node was created before timeout
  @throws InterruptedException if the thread is interrupted