# HG changeset patch # User unc0rr # Date 1339877300 -14400 # Node ID 74a92f39703b6ce13b87a55433c25c32e76b0797 # Parent 304d3d98662e75964e645de3ecb9919c6150669f Catch all types of exceptions in recv thread. Should probably help with ghosts problem, though I have no idea which else kind of exception could arise there. diff -r 304d3d98662e -r 74a92f39703b gameServer/ClientIO.hs --- a/gameServer/ClientIO.hs Thu Jun 14 16:35:36 2012 +0400 +++ b/gameServer/ClientIO.hs Sun Jun 17 00:08:20 2012 +0400 @@ -48,6 +48,7 @@ listenLoop s chan ci >> return "Connection closed") `Exception.catch` (\(e :: Exception.IOException) -> return . B.pack . show $ e) `Exception.catch` (\(e :: ShutdownThreadException) -> return . B.pack . show $ e) + `Exception.catch` (\(e :: Exception.SomeException) -> return . B.pack . show $ e) >>= clientOff >> remove where clientOff msg = writeChan chan $ ClientMessage (ci, ["QUIT", msg])