packages feed

distributed-process-p2p 0.1.1.1 → 0.1.1.2

raw patch · 2 files changed

+12/−2 lines, 2 files

Files

distributed-process-p2p.cabal view
@@ -1,5 +1,5 @@ name:                distributed-process-p2p-version:             0.1.1.1+version:             0.1.1.2 synopsis:            Peer-to-peer node discovery for Cloud Haskell description:         Bootstraps a peer-to-peer connection network from a set of known hosts. homepage:            https://bitbucket.org/dpwiz/distributed-process-p2p/@@ -34,6 +34,7 @@ executable jollycloud   hs-source-dirs:      tests/   main-is:             JollyCloud.hs+  ghc-options:         -threaded   build-depends:     base ==4.*,     mtl ==2.*,
src/Control/Distributed/Backend/P2P.hs view
@@ -32,6 +32,7 @@ import Control.Applicative import Control.Monad.Trans import Control.Concurrent.MVar+import Control.Concurrent (threadDelay)  import qualified Data.ByteString.Char8 as BS import qualified Data.ByteString.Lazy.Char8 as BSL@@ -52,7 +53,6 @@ initPeerState = do     self <- getSelfPid     peers <- liftIO $ newMVar (S.singleton self)-    register peerControllerService self     return $! PeerState peers  -- ** Initialization@@ -69,6 +69,15 @@      pcPid <- forkProcess node $ do         state <- initPeerState++        let waitRegister = do+            liftIO $ threadDelay 250000+            res <- whereis peerControllerService+            case res of+                Nothing -> waitRegister+                Just _ -> return ()+        getSelfPid >>= register peerControllerService >> waitRegister+         mapM_ doDiscover seeds         say "P2P controller started."         forever $ receiveWait [ matchIf isPeerDiscover $ onDiscover state