@@ -115,18 +115,13 @@ mkSourceEnd host service chanId = withSocketsDo $ do
115115 sock <- socket (addrFamily serverAddr) Stream defaultProtocol
116116 setSocketOption sock ReuseAddr 1
117117 N.connect sock (addrAddress serverAddr)
118−-- let sink = sinkSocket sock :: Sink ByteString IO ()
119118 NBS.sendAll sock $ encode (fromIntegral chanId :: Int64)
120119 return SourceEnd
121120 { send = {-# SCC "send" #-} \bss -> do
122121 let size = fromIntegral (sum . map BS.length $ bss) :: Int64
123− if size < 255
124− then
125− NBS.sendAll sock (encode (fromIntegral size :: Word8))
126− else do
127− NBS.sendAll sock (encode (255 :: Word8))
128− NBS.sendAll sock (encode size)
129− mapM_ (NBS.sendAll sock) bss
122+ sizeStr | size < 255 = encode (fromIntegral size :: Word8)
123+ | otherwise = BS.cons 255 (encode size)
124+ NBS.sendMany sock (sizeStr:bss)
130125 , closeSourceEnd = {-# SCC "closeSourceEnd" #-} sClose sock
131126 }
132127