on master help sign in
Hiding ThreadKilled messages
commit1febae94d54bed479faa2a1268b9a7911238912f authorMichael Snoyman <michael@snoyman.com> dateThu 30 Jun 2011, 15:57 (15 years ago) parent451beee
1 file changed+7−2
Network/Wai/Handler/Warp.hs+7−2
Network/Wai/Handler/Warp.hs+7−2
@@ -61,7 +61,7 @@ import qualified Network.Socket
6161import qualified Network.Socket.ByteString as Sock
6262import Control.Exception
6363 ( bracket, finally, Exception, SomeException, catch
64− , fromException
64+ , fromException, AsyncException (ThreadKilled)
6565 )
6666import Control.Concurrent (forkIO)
6767import qualified Data.Char as C
@@ -437,12 +437,17 @@ defaultSettings = Settings
437437 , settingsOnException = \e ->
438438 case fromException e of
439439 Just x -> go x
440− Nothing -> hPutStrLn stderr $ show e
440+ Nothing ->
441+ if go' $ fromException e
442+ then hPutStrLn stderr $ show e
443+ else return ()
441444 , settingsTimeout = 30
442445 }
443446 where
444447 go :: InvalidRequest -> IO ()
445448 go _ = return ()
449+ go' (Just ThreadKilled) = False
450+ go' _ = True
446451
447452takeHeaders :: E.Iteratee ByteString IO [ByteString]
448453takeHeaders = do