summaryrefslogtreecommitdiff
path: root/src/Erebos/Network
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2025-07-12 17:40:51 +0200
committerRoman Smrž <roman.smrz@seznam.cz>2025-07-13 17:07:56 +0200
commit5667e01bfbdacbd6619e75172f1c6201b15d3647 (patch)
tree15392bf1529112b6b84f1529088f6b2672c3742a /src/Erebos/Network
parentea3a4dac09113a1650892e3b6d0725392e2129c0 (diff)
Protocol: release unused packet reservations
Diffstat (limited to 'src/Erebos/Network')
-rw-r--r--src/Erebos/Network/Protocol.hs5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/Erebos/Network/Protocol.hs b/src/Erebos/Network/Protocol.hs
index 025f52c..e629967 100644
--- a/src/Erebos/Network/Protocol.hs
+++ b/src/Erebos/Network/Protocol.hs
@@ -917,7 +917,10 @@ processOutgoing gs@GlobalState {..} = do
, rsOnAck = rsOnAck rs >> onAck
}) <$> mbReserved
sendBytes conn mbReserved' bs
- Nothing -> return ()
+ Nothing -> do
+ when (isJust mbReserved) $ do
+ atomically $ do
+ modifyTVar' cReservedPackets (subtract 1)
let waitUntil :: TimeSpec -> TimeSpec -> STM ()
waitUntil now till = do