diff -r af4e205e4b5a -r 73c5839d4447 gameServer/ClientIO.hs --- a/gameServer/ClientIO.hs Sun Mar 13 20:34:27 2011 +0300 +++ b/gameServer/ClientIO.hs Mon Mar 14 20:04:51 2011 +0300 @@ -46,10 +46,8 @@ sendPacket packet = writeChan chan $ ClientMessage (ci, packet) clientRecvLoop :: Socket -> Chan CoreMessage -> ClientIndex -> IO () -clientRecvLoop s chan ci = Exception.block $ - ((Exception.unblock $ listenLoop s chan ci >> return "Connection closed") `catch` (return . B.pack . show) >>= clientOff) - `Exception.finally` - remove +clientRecvLoop s chan ci = + (Exception.unblock $ listenLoop s chan ci >> return "Connection closed") `catch` (return . B.pack . show) >>= clientOff >> remove where clientOff msg = writeChan chan $ ClientMessage (ci, ["QUIT", msg]) remove = writeChan chan $ Remove ci