Add `forkProcessWithUnmask` function
authorHerbert Valerio Riedel <hvr@gnu.org>
Fri, 8 Nov 2013 11:48:54 +0000 (12:48 +0100)
committerHerbert Valerio Riedel <hvr@gnu.org>
Fri, 8 Nov 2013 11:48:54 +0000 (12:48 +0100)
This seemed to be an obvious addition while working on #8433.

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
System/Posix/Process/ByteString.hsc
System/Posix/Process/Common.hsc
changelog
unix.cabal

index 30f40cd..4c6840a 100644 (file)
@@ -22,6 +22,7 @@ module System.Posix.Process.ByteString (
     -- ** Forking and executing
 #ifdef __GLASGOW_HASKELL__
     forkProcess,
+    forkProcessWithUnmask,
 #endif
     executeFile,
     
index 1b504df..b760caa 100644 (file)
@@ -1,4 +1,4 @@
-{-# LANGUAGE InterruptibleFFI #-}
+{-# LANGUAGE InterruptibleFFI, RankNTypes #-}
 #ifdef __GLASGOW_HASKELL__
 {-# LANGUAGE Trustworthy #-}
 #endif
@@ -23,6 +23,7 @@ module System.Posix.Process.Common (
     -- ** Forking and executing
 #ifdef __GLASGOW_HASKELL__
     forkProcess,
+    forkProcessWithUnmask,
 #endif
 
     -- ** Exiting
@@ -306,6 +307,13 @@ forkProcess action = do
     (\stable -> throwErrnoIfMinus1 "forkProcess" (forkProcessPrim stable))
 
 foreign import ccall "forkProcess" forkProcessPrim :: StablePtr (IO ()) -> IO CPid
+
+-- | Variant of 'forkProcess' in the style of 'forkIOWithUnmask'.
+--
+-- /Since: 2.7.0.0/
+forkProcessWithUnmask :: ((forall a . IO a -> IO a) -> IO ()) -> IO ProcessID
+forkProcessWithUnmask action = forkProcess (action unsafeUnmask)
+
 #endif /* __GLASGOW_HASKELL__ */
 
 -- -----------------------------------------------------------------------------
index ec0fbc8..ce72345 100644 (file)
--- a/changelog
+++ b/changelog
@@ -2,6 +2,8 @@
 
 2.7.0.0  Nov 2013
 
+        * New `forkProcessWithUnmask` function in the style of `forkIOWithUnmask`
+
         * Change `forkProcess` to inherit the exception masking state of its caller
 
         * Add new `Bool` flag to `ProcessStatus(Terminated)` constructor
@@ -26,6 +28,8 @@
 
         * Fix library detection of `shm*` on openSUSE (#8350)
 
+        * Minor documentation fixes/updates
+
         * Update package to `cabal-version >= 1.10` format
 
 2.6.0.1  Jan 2013
index 2f729ba..3ad3c98 100644 (file)
@@ -54,6 +54,7 @@ library
         InterruptibleFFI
         NoMonomorphismRestriction
         OverloadedStrings
+        RankNTypes
 
     if impl(ghc)
         other-extensions: