packages feed

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 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