diff --git a/hbs2-peer/app/RPC2.hs b/hbs2-peer/app/RPC2.hs index 4fe06e8f..89c0abe6 100644 --- a/hbs2-peer/app/RPC2.hs +++ b/hbs2-peer/app/RPC2.hs @@ -242,15 +242,13 @@ runBurstMachine BurstMachine{..} = do pause @'Seconds 600 atomically $ writeTVar _buMaxReal buMax - forever do - - e1 <- readTVarIO _buErrors + flip fix 0 $ \next e1 -> do let dt = realToFrac _buTimeout pause @'Seconds dt - atomically do + eNew <- atomically do e2 <- readTVar _buErrors current <- readTVar _buCurrent @@ -270,6 +268,10 @@ runBurstMachine BurstMachine{..} = do modifyTVar _rates ( Map.insertWith max dedt current ) + pure e2 + + next eNew + data S = SInit | SFetchQ