Newer
Older
import Control.Monad
import Control.Concurrent.MVar
import Text.Printf
incrementAndPrint :: MVar Integer -> IO ()
incrementAndPrint counter = do
newCount <- modifyMVar counter (\i -> return (i + 1, i + 1))
printf "The count is %d\n" newCount
putStrLn "---------------"
main :: IO ()
main = do
putStrLn "Starting up"
counter <- newMVar 0
replicateM_ 10 (incrementAndPrint counter)
putStrLn "Finishing up"