diff --git a/lib/netutil/conn_pool.go b/lib/netutil/conn_pool.go index 4e5d70889..43411471d 100644 --- a/lib/netutil/conn_pool.go +++ b/lib/netutil/conn_pool.go @@ -222,8 +222,14 @@ var connPools []*ConnPool func forEachConnPool(f func(cp *ConnPool)) { connPoolsMu.Lock() + var wg sync.WaitGroup for _, cp := range connPools { - f(cp) + wg.Add(1) + go func(cp *ConnPool) { + defer wg.Done() + f(cp) + }(cp) } + wg.Wait() connPoolsMu.Unlock() }