FIX: data race warning in sentinel client since the newConnPool would spawn the new

goroutine and use the onFailover at the same time.
This commit is contained in:
git-hulk 2020-11-19 20:12:56 +08:00
parent 5aedb90a65
commit 956f43e3f9
1 changed files with 2 additions and 0 deletions

View File

@ -177,11 +177,13 @@ func NewFailoverClient(failoverOpt *FailoverOptions) *Client {
opt.init() opt.init()
connPool := newConnPool(opt) connPool := newConnPool(opt)
failover.mu.Lock()
failover.onFailover = func(ctx context.Context, addr string) { failover.onFailover = func(ctx context.Context, addr string) {
_ = connPool.Filter(func(cn *pool.Conn) bool { _ = connPool.Filter(func(cn *pool.Conn) bool {
return cn.RemoteAddr().String() != addr return cn.RemoteAddr().String() != addr
}) })
} }
failover.mu.Unlock()
c := Client{ c := Client{
baseClient: newBaseClient(opt, connPool), baseClient: newBaseClient(opt, connPool),