code: func (le *LeaderElector) acquire(ctx context.Context) bool {
  	ctx, cancel := context.WithCancel(ctx)
  	defer cancel()
  	succeeded := false
  	desc := le.config.Lock.Describe()
  	klog.Infof("attempting to acquire leader lease  %v...", desc)
  	wait.JitterUntil(func() {
  		succeeded = le.tryAcquireOrRenew()
  		le.maybeReportTransition()
  		if !succeeded {
  			klog.V(4).Infof("failed to acquire lease %v", desc)
  			return
  		}
  		le.config.Lock.RecordEvent("became leader")
  		le.metrics.leaderOn(le.config.Name)
  		klog.Infof("successfully acquired lease %v", desc)
  		cancel()
  	}, le.config.RetryPeriod, JitterFactor, true, ctx.Done())
  	return succeeded
  }
docs: // acquire loops calling tryAcquireOrRenew and returns true immediately when tryAcquireOrRenew succeeds.
  // Returns false if ctx signals done.