code: Long waitForStart() throws InterruptedException, WorkRejectedException {
          long timeout = startTimeout == WorkManager.UNKNOWN ? WorkManager.INDEFINITE : startTimeout < fudgeFactor ? fudgeFactor : startTimeout;
          Object o = startupDurationQueue.poll(timeout, TimeUnit.MILLISECONDS);
          if (o instanceof WorkRejectedException)
              throw (WorkRejectedException) o;
          else
              return (Long) o;
      }
docs: Waits for the work to start.
  
  @return the duration that it took for the work to start. Null if we timed out waiting.
  @throws InterruptedException if interrupted while waiting.