Repository : ssh://darcs.haskell.org//srv/darcs/packages/process

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/fdd02c6464cd73b15195f166377675c9aecf052e

>---------------------------------------------------------------

commit fdd02c6464cd73b15195f166377675c9aecf052e
Author: Simon Marlow <[email protected]>
Date:   Mon Nov 14 15:47:21 2011 +0000

    Make interruptProcessGroupOf interrupt the current process group (#5223)

>---------------------------------------------------------------

 System/Process.hs |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/System/Process.hs b/System/Process.hs
index 0754386..c452b68 100644
--- a/System/Process.hs
+++ b/System/Process.hs
@@ -73,6 +73,9 @@ import System.Process.Internals
 import System.IO.Error
 #if !defined(mingw32_HOST_OS)
 import System.Posix.Types
+#if MIN_VERSION_unix(2,5,0)
+import System.Posix.Process (getProcessGroupIDOf)
+#endif
 #endif
 import qualified Control.Exception as C
 import Control.Concurrent
@@ -568,7 +571,7 @@ terminateProcess ph = do
 -- processes created using 'createProcess' and setting the 'create_group' flag
 
 interruptProcessGroupOf
-    :: ProcessHandle    -- ^ Lead process in the process group
+    :: ProcessHandle    -- ^ A process in the process group
     -> IO ()
 interruptProcessGroupOf ph = do
 #if mingw32_HOST_OS
@@ -584,7 +587,13 @@ interruptProcessGroupOf ph = do
         case p_ of
             ClosedHandle _ -> return p_
             OpenHandle h -> do
+#if MIN_VERSION_unix(2,5,0)
+                -- getProcessGroupIDOf was added in unix-2.5.0.0
+                pgid <- getProcessGroupIDOf h
+                signalProcessGroup sigINT pgid
+#else
                 signalProcessGroup sigINT h
+#endif
                 return p_
 #endif
 



_______________________________________________
Cvs-libraries mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-libraries

Reply via email to