(srv types.LoadBalancerServer)
| 122 | } |
| 123 | |
| 124 | func (lb *LoadBalancer) AddServer(srv types.LoadBalancerServer) { |
| 125 | lb.poolMu.Lock() |
| 126 | defer lb.poolMu.Unlock() |
| 127 | |
| 128 | if old, ok := lb.pool.Get(srv.Key()); ok { // FIXME: this should be a warning |
| 129 | lb.sumWeight -= old.Weight() |
| 130 | lb.impl.OnRemoveServer(old) |
| 131 | lb.pool.Del(old) |
| 132 | } |
| 133 | lb.pool.Add(srv) |
| 134 | lb.sumWeight += srv.Weight() |
| 135 | |
| 136 | lb.rebalance() |
| 137 | lb.impl.OnAddServer(srv) |
| 138 | } |
| 139 | |
| 140 | func (lb *LoadBalancer) RemoveServer(srv types.LoadBalancerServer) { |
| 141 | lb.poolMu.Lock() |