From 2a3c5426ca8e7b82711f3e29d956bc68e6e1f120 Mon Sep 17 00:00:00 2001 From: Martin Boehm Date: Tue, 17 Mar 2020 00:08:00 +0100 Subject: [PATCH] Improve remove empty map on websocket unsubscribe --- server/websocket.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/server/websocket.go b/server/websocket.go index ec72b883..818d88d4 100644 --- a/server/websocket.go +++ b/server/websocket.go @@ -688,11 +688,11 @@ func (s *WebsocketServer) unsubscribeAddresses(c *websocketChannel) (res interfa for sc := range sa { if sc == c { delete(sa, c) - if len(sa) == 0 { - delete(s.addressSubscriptions, ads) - } } } + if len(sa) == 0 { + delete(s.addressSubscriptions, ads) + } } return &subscriptionResponse{false}, nil } @@ -720,12 +720,15 @@ func (s *WebsocketServer) subscribeFiatRates(c *websocketChannel, currency strin func (s *WebsocketServer) unsubscribeFiatRates(c *websocketChannel) (res interface{}, err error) { s.fiatRatesSubscriptionsLock.Lock() defer s.fiatRatesSubscriptionsLock.Unlock() - for _, sa := range s.fiatRatesSubscriptions { + for fr, sa := range s.fiatRatesSubscriptions { for sc := range sa { if sc == c { delete(sa, c) } } + if len(sa) == 0 { + delete(s.fiatRatesSubscriptions, fr) + } } return &subscriptionResponse{false}, nil }