Leader will try to return the leader of a given group, based on membership information. There is currently no guarantee that the returned server is the leader of the group.
(gid uint32)
| 629 | // Leader will try to return the leader of a given group, based on membership information. |
| 630 | // There is currently no guarantee that the returned server is the leader of the group. |
| 631 | func (g *groupi) Leader(gid uint32) *conn.Pool { |
| 632 | members := g.members(gid) |
| 633 | if members == nil { |
| 634 | return nil |
| 635 | } |
| 636 | for _, m := range members { |
| 637 | if m.Leader { |
| 638 | if pl, err := conn.GetPools().Get(m.Addr); err == nil { |
| 639 | return pl |
| 640 | } |
| 641 | } |
| 642 | } |
| 643 | return nil |
| 644 | } |
| 645 | |
| 646 | func (g *groupi) KnownGroups() (gids []uint32) { |
| 647 | g.RLock() |
no test coverage detected