From b4c36e40f0f6b9aa76fbae588bbf0296ce7ad27f Mon Sep 17 00:00:00 2001 From: Jay Date: Sun, 17 May 2026 15:39:24 -0400 Subject: [PATCH] avoid running session close under lock --- request.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/request.go b/request.go index 352bdb8..759d139 100644 --- a/request.go +++ b/request.go @@ -205,11 +205,16 @@ func (m *RequestManager) Close() { m.cancel() m.wg.Wait() - m.mu.Lock() - for _, sess := range m.sessions { + m.mu.RLock() + sessions := make(map[string]*session) + for id, s := range m.sessions { + sessions[id] = s + } + m.mu.RUnlock() + + for _, sess := range sessions { sess.Close() } - m.mu.Unlock() m.sessionWg.Wait()