Advertisement
Guest User

Untitled

a guest
Dec 4th, 2016
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import Control.Concurrent.Chan
  2. import Data.List
  3. import Control.Concurrent.MVar
  4. import Control.Concurrent
  5. import Control.Monad
  6.  
  7.  
  8. data Clock = Clock (MVar Integer)
  9.  
  10. getTicket :: Clock -> IO (Integer)
  11. getTicket (Clock m) = do
  12.           old <- takeMVar m
  13.           putMVar m (old + 1)
  14.           return old
  15.          
  16. --         c1
  17. --      -------->
  18. --     p-------->q    
  19. --      ^  c2   /
  20. --    c4 \     / c3
  21. --        \   v
  22. --          r
  23. main :: IO ()
  24. main = do
  25.     m <- newEmptyMVar
  26.     clock <- Clock (m)
  27.     putStrLn "Hello"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement