From aabab7ed8c2dd4a7f7d2d9dd3a4e9d5c95d4ae5c Mon Sep 17 00:00:00 2001 From: Vlasdislav Date: Fri, 14 Aug 2026 13:06:07 +0300 Subject: [PATCH] Fix: Shutdown wait for goroutines --- pkg/clientpool/clientpool.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkg/clientpool/clientpool.go b/pkg/clientpool/clientpool.go index 3ac84da..6e8e52e 100644 --- a/pkg/clientpool/clientpool.go +++ b/pkg/clientpool/clientpool.go @@ -109,15 +109,23 @@ func (c *PoolImpl) Shutdown() error { c.mu.Lock() defer c.mu.Unlock() - var retError error + var ( + retError error + wg sync.WaitGroup + ) + for _, cl := range c.pool { + wg.Add(1) go func(cl client.YproxyClient) { + defer wg.Done() + if err := cl.Close(); err != nil { ylogger.Zero.Error().Err(err).Msg("failed to close client connection") retError = err } }(cl) } + wg.Wait() return retError }