Advertisement
Guest User

This should throw an exception

a guest
Nov 28th, 2023
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module Main where
  2.  
  3. import Control.Concurrent.STM
  4. import Control.Concurrent
  5. import Control.Monad
  6. import Text.Show
  7.  
  8. main :: IO ()
  9. main = do
  10.   foo <- newTVarIO 1
  11.   forkIO $ do
  12.     forever $ do
  13.       atomically $ do
  14.         writeTVar foo 0
  15.         writeTVar foo 1
  16.   forkIO $ do
  17.     forever $ do
  18.       bar <- atomically $ do
  19.         bar <- readTVar foo
  20.         return $ 1 `div` bar
  21.       putStrLn $ show bar
  22.   forever $ do
  23.     putStrLn "foo"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement