[project @ 2005-11-23 11:47:16 by simonmar]
authorsimonmar <unknown>
Wed, 23 Nov 2005 11:47:16 +0000 (11:47 +0000)
committersimonmar <unknown>
Wed, 23 Nov 2005 11:47:16 +0000 (11:47 +0000)
Fix up to compile after recent changes to System.Process.Internals

testsuite/timeout/timeout.hs

index 3ac9dfb..d0c66b1 100644 (file)
@@ -11,7 +11,7 @@ import System.IO (hPutStrLn, stderr)
 import System.Process\r
 import Control.Monad (when)\r
 #if !defined(mingw32_HOST_OS)\r
-import System.Process.Internals (ProcessHandle(ProcessHandle))\r
+import System.Process.Internals (mkProcessHandle)\r
 import System.Posix.Process (forkProcess, createSession)\r
 import System.Posix.Signals (installHandler, Handler(Catch),\r
                              signalProcessGroup, sigINT, sigTERM, sigKILL )\r
@@ -30,36 +30,37 @@ main = do
         forkIO (do threadDelay (read secs * 1000000)\r
                    putMVar m Nothing\r
                )\r
-        forkIO (do try (do p <- forkProcess $ do\r
+        forkIO (do try (do pid <- forkProcess $ do\r
                                createSession\r
                                r <- system cmd\r
                                exitWith r\r
-                           putMVar mp p\r
-                           r <- waitForProcess (ProcessHandle p)\r
+                          ph <- mkProcessHandle pid\r
+                           putMVar mp (pid,ph)\r
+                           r <- waitForProcess ph\r
                            putMVar m (Just r))\r
                    return ())\r
 \r
-        p <- takeMVar mp\r
+        (pid,ph) <- takeMVar mp\r
         r <- takeMVar m\r
         case r of\r
           Nothing -> do\r
-                killProcess p\r
+                killProcess pid ph\r
                 exitWith (ExitFailure 99)\r
           Just r -> do\r
                 exitWith r\r
     _other -> do hPutStrLn stderr "timeout: bad arguments"\r
                  exitWith (ExitFailure 1)\r
 \r
-killProcess p = do\r
-  try (signalProcessGroup sigTERM p)\r
+killProcess pid ph = do\r
+  try (signalProcessGroup sigTERM pid)\r
   checkReallyDead 10\r
   where\r
     checkReallyDead 0 = hPutStrLn stderr "checkReallyDead: Giving up"\r
     checkReallyDead (n+1) =\r
       do threadDelay (3*100000) -- 3/10 sec\r
-         m <- getProcessExitCode (ProcessHandle p)\r
+         m <- getProcessExitCode ph\r
          when (isNothing m) $ do\r
-             try (signalProcessGroup sigKILL p)\r
+             try (signalProcessGroup sigKILL pid)\r
              checkReallyDead n\r
 \r
 #else\r