ringCopy returns a copy of the consistentRing.
()
| 112 | |
| 113 | // ringCopy returns a copy of the consistentRing. |
| 114 | func (c *consistentRing) ringCopy() ring { |
| 115 | c.lock.Lock() |
| 116 | defer c.lock.Unlock() |
| 117 | |
| 118 | ring := &consistentRing{ |
| 119 | self: c.self, |
| 120 | ring: consistent.New(), |
| 121 | replicas: c.replicas, |
| 122 | } |
| 123 | |
| 124 | m := c.ring.Members() |
| 125 | ring.ring.Set(m) |
| 126 | return ring |
| 127 | } |
| 128 | |
| 129 | // add adds a node to the consistent ring. |
| 130 | func (c *consistentRing) add(node string) { |