on master help sign in
using BangPatterns.
commit38a750abca5b37fa87fb229d30a262e6e5af6a90 authorKazu Yamamoto <kazu@iij.ad.jp> dateTue 8 Nov 2016, 12:46 (10 years ago) parent7f530d6
1 file changed+4−4
warp/Network/Wai/Handler/Warp/Response.hs+4−4
warp/Network/Wai/Handler/Warp/Response.hs+4−4
@@ -3,6 +3,7 @@
33{-# LANGUAGE TupleSections #-}
44{-# LANGUAGE RankNTypes #-}
55{-# LANGUAGE CPP #-}
6+{-# LANGUAGE BangPatterns #-}
67
78module Network.Wai.Handler.Warp.Response (
89 sendResponse
@@ -136,8 +137,6 @@ sendResponse :: Settings
136137sendResponse settings conn ii req reqidxhdr src response = do
137138 hs <- addServerAndDate hs0
138139 if hasBody s then do
139− -- Make sure we don't hang on to 'response' (avoid space leak)
140− ret' <- E.evaluate ret
141140 -- The response to HEAD does not have body.
142141 -- But to handle the conditional requests defined RFC 7232 and
143142 -- to generate appropriate content-length, content-range,
@@ -149,7 +148,7 @@ sendResponse settings conn ii req reqidxhdr src response = do
149148 Nothing -> return ()
150149 Just realStatus -> logger req realStatus mlen
151150 T.tickle th
152− return ret'
151+ return ret
153152 else do
154153 _ <- sendRsp conn ii ver s hs RspNoBody
155154 logger req s Nothing
@@ -178,7 +177,8 @@ sendResponse settings conn ii req reqidxhdr src response = do
178177 | isHead -> RspNoBody
179178 | otherwise -> RspStream fb needsChunked th
180179 ResponseRaw raw _ -> RspRaw raw src (T.tickle th)
181− ret = case response of
180+ -- Make sure we don't hang on to 'response' (avoid space leak)
181+ !ret = case response of
182182 ResponseFile {} -> isPersist
183183 ResponseBuilder {} -> isKeepAlive
184184 ResponseStream {} -> isKeepAlive