packages feed

MicroHs-0.13.0.0: tests/Mask.hs

module Mask where
import Control.Concurrent
import Control.Exception

printMaskingState :: String -> IO ()
printMaskingState s = putStr s >> getMaskingState >>= print

main :: IO ()
main = do
  printMaskingState "start "
  catch (do
            printMaskingState "catch start "
            uninterruptibleMask_ $ do
              printMaskingState "unintr start "
              error "a"
        )
        (\ (_ :: SomeException) -> do
            printMaskingState "handler "
        )
  printMaskingState "end "