summaryrefslogtreecommitdiff
path: root/compiler/utils/IOEnv.hs
diff options
context:
space:
mode:
authorEdsko de Vries <edsko@well-typed.com>2013-11-28 16:38:26 +0000
committerEdsko de Vries <edsko@well-typed.com>2013-12-03 16:17:52 +0000
commit586bc85538cf12048137c2693da7c9fe3ca481ef (patch)
treeebf4a72650ce03354817a17af9893c3cf800a3bd /compiler/utils/IOEnv.hs
parent4025d66cc795b728f745aec23fc5c2267d1839f0 (diff)
downloadhaskell-586bc85538cf12048137c2693da7c9fe3ca481ef.tar.gz
Mask async exceptions in forkM_
See #8006 for the reason why. This is not a fix as such; more of a workaround.
Diffstat (limited to 'compiler/utils/IOEnv.hs')
-rw-r--r--compiler/utils/IOEnv.hs4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/utils/IOEnv.hs b/compiler/utils/IOEnv.hs
index 04c11cf531..6885bbd127 100644
--- a/compiler/utils/IOEnv.hs
+++ b/compiler/utils/IOEnv.hs
@@ -22,7 +22,7 @@ module IOEnv (
-- Getting at the environment
getEnv, setEnv, updEnv,
- runIOEnv, unsafeInterleaveM,
+ runIOEnv, unsafeInterleaveM, uninterruptibleMaskM_,
tryM, tryAllM, tryMostM, fixM,
-- I/O operations
@@ -149,6 +149,8 @@ tryMostM (IOEnv thing) = IOEnv (\ env -> tryMost (thing env))
unsafeInterleaveM :: IOEnv env a -> IOEnv env a
unsafeInterleaveM (IOEnv m) = IOEnv (\ env -> unsafeInterleaveIO (m env))
+uninterruptibleMaskM_ :: IOEnv env a -> IOEnv env a
+uninterruptibleMaskM_ (IOEnv m) = IOEnv (\ env -> uninterruptibleMask_ (m env))
----------------------------------------------------------------------
-- Alternative/MonadPlus