code: func (p *Provider) wait() {
  	// Compute the backoff time
  	backoff := p.backoffDuration()
  
  	// Setup a wait timer
  	var wait <-chan time.Time
  	if backoff > 0 {
  		jitter := time.Duration(rand.Uint32()) % backoff
  		wait = time.After(backoff + jitter)
  	}
  
  	// Wait until timer or shutdown
  	select {
  	case <-wait:
  	case <-p.shutdownCh:
  	}
  }
docs: // wait is used to delay dialing on an error