Tells you whether async exceptions are currently blocked or not.
block, -- :: IO a -> IO a
unblock, -- :: IO a -> IO a
block, -- :: IO a -> IO a
unblock, -- :: IO a -> IO a
-- *** Applying @block@ to an exception handler
-- *** Applying @block@ to an exception handler
block = id
unblock :: IO a -> IO a
unblock = id
block = id
unblock :: IO a -> IO a
unblock = id
+blocked :: IO Bool
+blocked = False
assert :: Bool -> a -> a
assert True x = x
assert :: Bool -> a -> a
assert True x = x
block (IO io) = IO $ blockAsyncExceptions# io
unblock (IO io) = IO $ unblockAsyncExceptions# io
block (IO io) = IO $ blockAsyncExceptions# io
unblock (IO io) = IO $ unblockAsyncExceptions# io
+
+-- | returns True if asynchronous exceptions are blocked in the
+-- current thread.
+blocked :: IO Bool
+blocked = IO $ \s -> case asyncExceptionsBlocked# s of
+ (# s', i #) -> (# s', i /=# 0# #)