MCPcopy
hub / github.com/bradfitz/gomemcache / SetServers

Method SetServers

memcache/selector.go:68–90  ·  view source on GitHub ↗

SetServers changes a ServerList's set of servers at runtime and is safe for concurrent use by multiple goroutines. Each server is given equal weight. A server is given more weight if it's listed multiple times. SetServers returns an error if any of the server names fail to resolve. No attempt is m

(servers ...string)

Source from the content-addressed store, hash-verified

66// resolve. No attempt is made to connect to the server. If any error
67// is returned, no changes are made to the ServerList.
68func (ss *ServerList) SetServers(servers ...string) error {
69 naddr := make([]net.Addr, len(servers))
70 for i, server := range servers {
71 if strings.Contains(server, "/") {
72 addr, err := net.ResolveUnixAddr("unix", server)
73 if err != nil {
74 return err
75 }
76 naddr[i] = newStaticAddr(addr)
77 } else {
78 tcpaddr, err := net.ResolveTCPAddr("tcp", server)
79 if err != nil {
80 return err
81 }
82 naddr[i] = newStaticAddr(tcpaddr)
83 }
84 }
85
86 ss.mu.Lock()
87 defer ss.mu.Unlock()
88 ss.addrs = naddr
89 return nil
90}
91
92// Each iterates over each server calling the given function
93func (ss *ServerList) Each(f func(net.Addr) error) error {

Callers 2

benchPickServerFunction · 0.95
NewFunction · 0.80

Calls 1

newStaticAddrFunction · 0.85

Tested by 1

benchPickServerFunction · 0.76