class Google::Cloud::Env::LazyValue

def determine_await_retry_delay state, expiry_time, delay_epsilon

Other tags:
    Private: -
def determine_await_retry_delay state, expiry_time, delay_epsilon
  cur_time = Process.clock_gettime Process::CLOCK_MONOTONIC
  next_run_time =
    if state[0] == :pending && state[2]
      # Run at end of the current retry delay, plus an epsilon,
      # if in pending state
      state[2] + delay_epsilon
    else
      # Default to run immediately otherwise
      cur_time
    end
  # Signal nil if we're past the max time
  return nil if expiry_time && next_run_time > expiry_time
  # No delay if we're already past the time we want to run
  return 0 if next_run_time < cur_time
  next_run_time - cur_time
end