gameServer/ClientIO.hs
changeset 3671 a94d1dc4a8d9
parent 3566 772a46ef8288
child 3673 45778b16b224
equal deleted inserted replaced
3669:19be65b12c43 3671:a94d1dc4a8d9
    59 
    59 
    60 clientSendLoop :: Socket -> Chan CoreMessage -> Chan [B.ByteString] -> ClientIndex -> IO()
    60 clientSendLoop :: Socket -> Chan CoreMessage -> Chan [B.ByteString] -> ClientIndex -> IO()
    61 clientSendLoop s coreChan chan ci = do
    61 clientSendLoop s coreChan chan ci = do
    62     answer <- readChan chan
    62     answer <- readChan chan
    63     doClose <- Exception.handle
    63     doClose <- Exception.handle
    64         (\(e :: Exception.IOException) -> if isQuit answer then return True else sendQuit e >> return False) $ do
    64         (\(e :: Exception.IOException) -> if isQuit answer then return True else sendQuit e >> return True) $ do
    65             sendAll s $ (B.unlines answer) `B.append` (B.singleton '\n')
    65             sendAll s $ (B.unlines answer) `B.append` (B.singleton '\n')
    66             return $ isQuit answer
    66             return $ isQuit answer
    67 
    67 
    68     if doClose then
    68     if doClose then
    69         Exception.handle (\(_ :: Exception.IOException) -> putStrLn "error on sClose") $ sClose s
    69         Exception.handle (\(_ :: Exception.IOException) -> putStrLn "error on sClose") $ sClose s