distributed-process-lifted-0.2.0.0: src/Control/Distributed/Process/Node/Lifted.hs
{-# LANGUAGE FlexibleContexts #-}
module Control.Distributed.Process.Node.Lifted
( module Control.Distributed.Process.Node.Lifted
, Base.LocalNode
, Base.initRemoteTable
, Base.localNodeId
) where
import Control.Monad.Base ( MonadBase, liftBase )
import Control.Distributed.Process (ProcessId, Process, RemoteTable)
import Control.Distributed.Process.Node (LocalNode)
import Network.Transport (Transport)
import qualified Control.Distributed.Process.Node as Base
import Control.Distributed.Process.MonadBaseControl ()
-- | Generalized version of 'MVar.putMVar'.
closeLocalNode :: MonadBase IO m => LocalNode -> m ()
closeLocalNode = liftBase . Base.closeLocalNode
-- | Generalized version of 'Base.forkProcess'.
forkProcess :: MonadBase IO m => LocalNode -> Process () -> m ProcessId
forkProcess n = liftBase . Base.forkProcess n
-- | Generalized version of 'Base.newLocalNode'.
newLocalNode :: MonadBase IO m => Transport -> RemoteTable -> m LocalNode
newLocalNode t = liftBase . Base.newLocalNode t
-- | Generalized version of 'Base.runProcess'
runProcess :: MonadBase IO m => LocalNode -> Process () -> m ()
runProcess n = liftBase . Base.runProcess n