equal
deleted
inserted
replaced
64 |
64 |
65 when (isQuit answer) $ |
65 when (isQuit answer) $ |
66 killReciever . B.unpack $ quitMessage answer |
66 killReciever . B.unpack $ quitMessage answer |
67 |
67 |
68 Exception.handle |
68 Exception.handle |
69 (\(e :: Exception.IOException) -> unless (isQuit answer) . killReciever $ show e) $ |
69 (\(e :: Exception.SomeException) -> unless (isQuit answer) . killReciever $ show e) $ |
70 sendAll s $ B.unlines answer `B.snoc` '\n' |
70 sendAll s $ B.unlines answer `B.snoc` '\n' |
71 |
71 |
72 if isQuit answer then |
72 if isQuit answer then |
73 do |
73 sClose s |
74 Exception.handle (\(_ :: Exception.IOException) -> putStrLn "error on sClose") $ sClose s |
|
75 else |
74 else |
76 clientSendLoop s tId chan ci |
75 clientSendLoop s tId chan ci |
77 |
76 |
78 where |
77 where |
79 killReciever = Exception.throwTo tId . ShutdownThreadException |
78 killReciever = Exception.throwTo tId . ShutdownThreadException |