code: @VisibleForTesting
      public ControllerServiceStarter awaitServiceStarting() {
          monitor.enterWhenUninterruptibly(hasReachedStarting);
          try {
              if (serviceState != ServiceState.STARTING) {
                  throw new IllegalStateException("Expected state=" + ServiceState.STARTING +
                          ", but actual state=" + serviceState);
              } else {
                  return this.starter;
              }
          } finally {
              monitor.leave();
          }
      }
docs: Awaits until the internal state changes to STARTING, and returns the reference
  of current ControllerServiceStarter.