parallel-io-0.3.1: Control/Concurrent/ParallelIO/Compat.hs
{-# LANGUAGE CPP #-}
module Control.Concurrent.ParallelIO.Compat (
mask, mask_
) where
#if MIN_VERSION_base(4,3,0)
import Control.Exception ( mask, mask_ )
#else
import Control.Exception ( blocked, block, unblock )
mask :: ((IO a -> IO a) -> IO b) -> IO b
mask io = blocked >>= \b -> if b then io id else block $ io unblock
mask_ :: IO a -> IO a
mask_ io = mask $ \_ -> io
#endif