packages feed

Holumbus-Distribution-0.1.0: Examples/Distribution/CounterDMVar/SlaveCounter.hs

module Main(main) where
                 
import           Holumbus.Common.Logging
import           Holumbus.Distribution.DNode
import           Holumbus.Distribution.DMVar


main :: IO ()
main
  = do
    initializeLogging []
    initDNode $ defaultDNodeConfig ""
    addForeignDNode $ mkDNodeAddress "Master" "april" (fromInteger 7999)
    c <- newRemoteDMVar "counter" "Master"
    -- addForeignDNodeHandler (mkDNodeId "Master") listener
    doCounting c
    closeDMVar c
    deinitDNode


doCounting :: DMVar Int -> IO ()
doCounting c
  = do
    l <- getLine
    case  l of
      "exit" -> return ()
      _ -> do
        i <- takeDMVar c
        let i' = i+1
        putStrLn $ "old Value: " ++ (show i) ++ " -> new Value: " ++ (show i')
        putDMVar c i'
        doCounting c