From dcb1f6ff019a2ba4620f7d944db97ef111f2d8f0 Mon Sep 17 00:00:00 2001 From: Matthias Hanel Date: Tue, 29 Sep 2020 13:15:45 -0400 Subject: [PATCH] Avoid blocking when holding account lock. Signed-off-by: Matthias Hanel --- server/events.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/server/events.go b/server/events.go index d4ded54a..1a8b5328 100644 --- a/server/events.go +++ b/server/events.go @@ -1185,7 +1185,14 @@ func (s *Server) sendAccConnsUpdate(a *Account, subj ...string) { } } for _, sub := range subj { - sendQ <- &pubMsg{nil, sub, _EMPTY_, &m.Server, &m, false} + msg := &pubMsg{nil, sub, _EMPTY_, &m.Server, &m, false} + select { + case sendQ <- msg: + default: + a.mu.Unlock() + sendQ <- msg + a.mu.Lock() + } } a.mu.Unlock() s.mu.Lock()