func()

in store/engine/raft/node.go [225:250]


func (n *Node) watchLeaderChange() {
	n.wg.Add(1)
	go func() {
		defer n.wg.Done()

		ticker := time.NewTicker(time.Second)
		defer ticker.Stop()
		for {
			select {
			case <-n.shutdown:
				return
			case <-ticker.C:
				lead := n.GetRaftLead()
				if lead != n.leader {
					n.leader = lead
					select {
					case <-n.shutdown:
						return
					case n.leaderChanged <- true:
					}
					n.logger.Info("Found leader changed", zap.Uint64("leader", lead))
				}
			}
		}
	}()
}