Advertisement
Guest User

Untitled

a guest
May 30th, 2016
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.54 KB | None | 0 0
  1.  
  2. module Main (main) where
  3.  
  4. import Control.Concurrent
  5. import Control.Concurrent.STM
  6.  
  7.  
  8. fib :: Integer -> Integer
  9. fib 0 = 1
  10. fib 1 = 1
  11. fib x = (fib $ x - 1) + (fib $ x - 2)
  12.  
  13. intensive tv n = atomically $ putTMVar tv $! (fib n)
  14.  
  15.  
  16. main = do t1 <- newEmptyTMVarIO
  17. t2 <- newEmptyTMVarIO
  18. forkIO $ intensive t1 37
  19. putStrLn "Launched first"
  20. forkIO $ intensive t2 38
  21. putStrLn "Launched second"
  22. r1 <- atomically $ readTMVar t1
  23. r2 <- atomically $ readTMVar t2
  24. print r1
  25. print r2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement