avoid running session close under lock
This commit is contained in:
+8
-3
@@ -205,11 +205,16 @@ func (m *RequestManager) Close() {
|
|||||||
m.cancel()
|
m.cancel()
|
||||||
m.wg.Wait()
|
m.wg.Wait()
|
||||||
|
|
||||||
m.mu.Lock()
|
m.mu.RLock()
|
||||||
for _, sess := range m.sessions {
|
sessions := make(map[string]*session)
|
||||||
|
for id, s := range m.sessions {
|
||||||
|
sessions[id] = s
|
||||||
|
}
|
||||||
|
m.mu.RUnlock()
|
||||||
|
|
||||||
|
for _, sess := range sessions {
|
||||||
sess.Close()
|
sess.Close()
|
||||||
}
|
}
|
||||||
m.mu.Unlock()
|
|
||||||
|
|
||||||
m.sessionWg.Wait()
|
m.sessionWg.Wait()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user