on master help sign in
Add strictness within the HTTP2 window-update STM.
commitf860142308450ce9f4622dfa882bc014a73ec9ef authorLucas DiCioccio <lucas@dicioccio.fr> dateMon 29 May 2017, 19:57 (9 years ago) parent2b97428
1 file changed+2−2
warp/Network/Wai/Handler/Warp/HTTP2/Receiver.hs+2−2
warp/Network/Wai/Handler/Warp/HTTP2/Receiver.hs+2−2
@@ -234,7 +234,7 @@ control FrameWindowUpdate header bs Context{connectionWindow} = do
234234 WindowUpdateFrame n <- guardIt $ decodeWindowUpdateFrame header bs
235235 !w <- atomically $ do
236236 w0 <- readTVar connectionWindow
237− let w1 = w0 + n
237+ let !w1 = w0 + n
238238 writeTVar connectionWindow w1
239239 return w1
240240 when (isWindowOverflow w) $ E.throwIO $ ConnectionError FlowControlError "control window should be less than 2^31"
@@ -341,7 +341,7 @@ stream FrameWindowUpdate header@FrameHeader{streamId} bs _ s Stream{streamWindow
341341 WindowUpdateFrame n <- guardIt $ decodeWindowUpdateFrame header bs
342342 !w <- atomically $ do
343343 w0 <- readTVar streamWindow
344− let w1 = w0 + n
344+ let !w1 = w0 + n
345345 writeTVar streamWindow w1
346346 return w1
347347 when (isWindowOverflow w) $