git.iko.soy/distributed-process
on master help sign in
Change to lazy ByteStrings.
commitd97505c71061002593cc4ceccdddb0702bb147a1 authorNicolas Wu <nick@well-typed.com> dateMon 23 Jan 2012, 11:56 (15 years ago) parent5f4d5a5
6 files changed+15−16
distributed-process/src/Control/Distributed/Process.hs+2−2 examples/DemoTCP.hs+1−1 examples/DemoTransport.hs+1−1 network-transport/src/Network/Transport.hs+1−1 network-transport/src/Network/Transport/MVar.hs+2−2 network-transport/src/Network/Transport/TCP.hs+8−9
distributed-process/src/Control/Distributed/Process.hs+2−2
@@ -27,8 +27,8 @@ module Control.Distributed.Process (
2727import qualified Network.Transport as Trans
2828import Network.Transport (Transport)
2929
30−import qualified Data.ByteString.Char8 as BS
31−import Data.ByteString.Char8 (ByteString)
30+import qualified Data.ByteString.Lazy.Char8 as BS
31+import Data.ByteString.Lazy.Char8 (ByteString)
3232import qualified Data.IntMap as IntMap
3333import Data.IntMap (IntMap)
3434import Control.Applicative
examples/DemoTCP.hs+1−1
@@ -7,7 +7,7 @@ import Control.Monad
77import Network.Socket (HostName, ServiceName)
88import System.Environment
99
10−import qualified Data.ByteString.Char8 as BS
10+import qualified Data.ByteString.Lazy.Char8 as BS
1111
1212import Debug.Trace
1313
examples/DemoTransport.hs+1−1
@@ -7,7 +7,7 @@ import Network.Transport.TCP (mkTransport, TCPConfig (..))
77import Control.Concurrent
88import Control.Monad
99
10−import qualified Data.ByteString.Char8 as BS
10+import qualified Data.ByteString.Lazy.Char8 as BS
1111
1212import Debug.Trace
1313
network-transport/src/Network/Transport.hs+1−1
@@ -12,7 +12,7 @@ module Network.Transport
1212 , newMulticast
1313 ) where
1414
15−import Data.ByteString.Char8 (ByteString)
15+import Data.ByteString.Lazy.Char8 (ByteString)
1616
1717-- | The `Hints` and `SourceHints` provide hints to the underlying transport
1818-- about the kind of connection that is required. This might include details
network-transport/src/Network/Transport/MVar.hs+2−2
@@ -6,10 +6,10 @@ module Network.Transport.MVar
66
77import Control.Concurrent.MVar
88import Data.IntMap (IntMap)
9−import Data.ByteString.Char8 (ByteString)
9+import Data.ByteString.Lazy.Char8 (ByteString)
1010
1111import qualified Data.IntMap as IntMap
12−import qualified Data.ByteString.Char8 as BS
12+import qualified Data.ByteString.Lazy.Char8 as BS
1313
1414import Network.Transport
1515
network-transport/src/Network/Transport/TCP.hs+8−9
@@ -9,19 +9,18 @@ import Control.Concurrent (forkIO)
99import Control.Concurrent.Chan
1010import Control.Concurrent.MVar
1111import Control.Monad (forever, unless)
12−import Data.ByteString.Char8 (ByteString)
12+import Data.ByteString.Lazy.Char8 (ByteString)
1313import Data.IntMap (IntMap)
14−import Data.Word
1514import Network.Socket
1615import Safe
1716
18−import qualified Data.ByteString.Char8 as BS
17+import qualified Data.ByteString.Lazy.Char8 as BS
1918import qualified Data.IntMap as IntMap
2019import qualified Network.Socket as N
21−import qualified Network.Socket.ByteString as NBS
20+import qualified Network.Socket.ByteString.Lazy as NBS
2221
23−type Chans = MVar (Int, IntMap (Chan ByteString))
24−type ChanId = Int
22+type ChanId = Int
23+type Chans = MVar (ChanId, IntMap (Chan ByteString))
2524
2625-- | This deals with several different configuration properties:
2726-- * Buffer size, specified in Hints
@@ -56,7 +55,7 @@ mkTransport (TCPConfig _hints host service) = withSocketsDo $ do
5655 chan <- newChan
5756 putMVar channels (chanId + 1, IntMap.insert chanId chan chanMap)
5857 return (mkSourceAddr host service chanId, mkTargetEnd chan)
59− , newMulticastWith = undefined
58+ , newMulticastWith = error "newMulticastWith: not defined"
6059 , deserialize = \bs ->
6160 case readMay . BS.unpack $ bs of
6261 Nothing -> error "deserialize: cannot parse"
@@ -80,8 +79,8 @@ mkTransport (TCPConfig _hints host service) = withSocketsDo $ do
8079 setSocketOption sock ReuseAddr 1
8180 N.connect sock (addrAddress serverAddr)
8281 NBS.sendAll sock $ BS.pack . show $ chanId
83− return $ SourceEnd
84− { Network.Transport.send = \bss -> NBS.sendMany sock bss
82+ return SourceEnd
83+ { Network.Transport.send = mapM_ (NBS.send sock)
8584 }
8685
8786 mkTargetEnd :: Chan ByteString -> TargetEnd