code: func (le *leaderElectionSvcImpl) Yield() {
  	le.Lock()
  	defer le.Unlock()
  	if !le.IsLeader() || le.isYielding() {
  		return
  	}
  	// Turn on the yield flag
  	atomic.StoreInt32(&le.yield, int32(1))
  	// Stop being a leader
  	le.stopBeingLeader()
  	// Clear the leader exists flag since it could be that we are the leader
  	atomic.StoreInt32(&le.leaderExists, int32(0))
  	// Clear the yield flag in any case afterwards
  	le.yieldTimer = time.AfterFunc(le.config.LeaderAliveThreshold*6, func() {
  		atomic.StoreInt32(&le.yield, int32(0))
  	})
  }
docs: // Yield relinquishes the leadership until a new leader is elected,
  // or a timeout expires