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