network-transport 0.3.0 → 0.3.0.1
raw patch · 2 files changed
+16/−8 lines, 2 filesdep ~binaryPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: binary
API changes (from Hackage documentation)
Files
- network-transport.cabal +3/−3
- src/Network/Transport/Util.hs +13/−5
network-transport.cabal view
@@ -1,12 +1,12 @@ Name: network-transport-Version: 0.3.0+Version: 0.3.0.1 Cabal-Version: >=1.6 Build-Type: Simple License: BSD3 License-File: LICENSE Copyright: Well-Typed LLP Author: Duncan Coutts, Nicolas Wu, Edsko de Vries-Maintainer: edsko@well-typed.com, dcoutts@well-typed.com+Maintainer: edsko@well-typed.com, duncan@well-typed.com Stability: experimental Homepage: http://github.com/haskell-distributed/distributed-process Bug-Reports: mailto:edsko@well-typed.com@@ -65,7 +65,7 @@ Library Build-Depends: base >= 4.3 && < 5,- binary >= 0.5 && < 0.6,+ binary >= 0.5 && < 0.7, bytestring >= 0.9 && < 0.11, transformers >= 0.2 && < 0.4 Exposed-Modules: Network.Transport,
src/Network/Transport/Util.hs view
@@ -9,6 +9,7 @@ , EndPointAddress , newEndPoint )+import Control.Exception (throwIO) import Control.Concurrent (forkIO) import Control.Concurrent.MVar (newEmptyMVar, putMVar, takeMVar) @@ -17,9 +18,16 @@ -- Returns the address of the new end point. spawn :: Transport -> (EndPoint -> IO ()) -> IO EndPointAddress spawn transport proc = do- addr <- newEmptyMVar+ addrMVar <- newEmptyMVar forkIO $ do- Right endpoint <- newEndPoint transport- putMVar addr (address endpoint)- proc endpoint- takeMVar addr+ mEndPoint <- newEndPoint transport+ case mEndPoint of+ Left err ->+ putMVar addrMVar (Left err)+ Right endPoint -> do+ putMVar addrMVar (Right (address endPoint))+ proc endPoint+ mAddr <- takeMVar addrMVar+ case mAddr of+ Left err -> throwIO err+ Right addr -> return addr