From 79d67694edd4b76ee246dbebdc53ac47234312f3 Mon Sep 17 00:00:00 2001 From: JRoberts <8711996+jr-simplex@users.noreply.github.com> Date: Thu, 30 Jun 2022 13:39:24 +0400 Subject: [PATCH] ntf: flush ntfSubQ on deleting all subscriptions (#442) --- src/Simplex/Messaging/Agent.hs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Simplex/Messaging/Agent.hs b/src/Simplex/Messaging/Agent.hs index 0dadd4795..001d551b0 100644 --- a/src/Simplex/Messaging/Agent.hs +++ b/src/Simplex/Messaging/Agent.hs @@ -65,7 +65,7 @@ module Simplex.Messaging.Agent ) where -import Control.Concurrent.STM (stateTVar) +import Control.Concurrent.STM (flushTBQueue, stateTVar) import Control.Logger.Simple (logInfo, showText) import Control.Monad.Except import Control.Monad.IO.Unlift (MonadUnliftIO) @@ -792,6 +792,7 @@ initializeNtfSubs c = do smpDeleteNtfSubs :: AgentMonad m => AgentClient -> m () smpDeleteNtfSubs c = do ns <- asks ntfSupervisor + void . atomically . flushTBQueue $ ntfSubQ ns connIds <- atomically $ getSubscriptions c forM_ connIds $ \connId -> atomically $ writeTBQueue (ntfSubQ ns) (connId, NSCSmpDelete)