From b00af2bc8f7d065133e5f6ecfab4af728f561f05 Mon Sep 17 00:00:00 2001 From: Denis Tereshkin Date: Sun, 26 Sep 2021 18:39:56 +0700 Subject: [PATCH] BrokerClient: update notification sqnum --- src/ATrade/Broker/Client.hs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ATrade/Broker/Client.hs b/src/ATrade/Broker/Client.hs index 2967a64..9090a6b 100644 --- a/src/ATrade/Broker/Client.hs +++ b/src/ATrade/Broker/Client.hs @@ -28,6 +28,7 @@ import Data.Maybe import qualified Data.Text as T import Data.Text.Encoding import qualified Data.Text.Encoding as T +import Safe import System.Log.Logger import System.Timeout import System.ZMQ4 @@ -189,6 +190,10 @@ bcGetNotifications clientIdentity idCounter notifSqnumRef cmdVar = do putMVar cmdVar (RequestNotifications sqnum clientIdentity notifSqnum, respVar) resp <- takeMVar respVar case resp of - (ResponseNotifications ns) -> return $ Right ns + (ResponseNotifications ns) -> do + case lastMay ns of + Just n -> atomicWriteIORef notifSqnumRef (getNotificationSqnum n) + Nothing -> return () + return $ Right ns (ResponseError msg) -> return $ Left msg _ -> return $ Left "Unknown error"