on master help sign in
Possible fix for #146
commit5dca62ec7d656a823b0f417482d4260b0019c9e2 authorMichael Snoyman <michael@snoyman.com> dateMon 11 Mar 2013, 19:14 (14 years ago) parent4429f2e
1 file changed+9−9
warp/Network/Wai/Handler/Warp/Run.hs+9−9
warp/Network/Wai/Handler/Warp/Run.hs+9−9
@@ -146,18 +146,18 @@ runSettingsConnectionMaker set getConn app = do
146146 (mkConn, addr) <- getConnLoop
147147 void . forkIO $ do
148148 th <- T.registerKillThread tm
149− conn <- mkConn
149+ bracket mkConn connClose $ \conn -> do
150150#if SENDFILEFD
151− let cleaner = Cleaner th fc
151+ let cleaner = Cleaner th fc
152152#else
153− let cleaner = Cleaner th
153+ let cleaner = Cleaner th
154154#endif
155− let serve = do
156− onOpen
157− restore $ serveConnection set cleaner port app conn addr
158− cleanup
159− cleanup = connClose conn >> T.cancel th >> onClose
160− handle onE (serve `onException` cleanup)
155+ let serve = do
156+ onOpen
157+ restore $ serveConnection set cleaner port app conn addr
158+ cleanup
159+ cleanup = T.cancel th >> onClose
160+ handle onE (serve `onException` cleanup)
161161 where
162162 -- FIXME: only IOEception is caught. What about other exceptions?
163163 getConnLoop = getConn `catch` \(e :: IOException) -> do