diff --git a/Annex/Action.hs b/Annex/Action.hs index b3ad1d9088..1902b0d89c 100644 --- a/Annex/Action.hs +++ b/Annex/Action.hs @@ -5,20 +5,13 @@ - Licensed under the GNU AGPL version 3 or higher. -} -{-# LANGUAGE CPP #-} - module Annex.Action ( startup, shutdown, stopCoProcesses, - reapZombies, ) where import qualified Data.Map as M -#ifndef mingw32_HOST_OS -import System.Posix.Process (getAnyProcessStatus) -import Utility.Exception -#endif import Annex.Common import qualified Annex @@ -38,7 +31,6 @@ shutdown nocommit = do saveState nocommit sequence_ =<< M.elems <$> Annex.getState Annex.cleanup stopCoProcesses - liftIO reapZombies -- zombies from long-running git processes {- Stops all long-running git query processes. -} stopCoProcesses :: Annex () @@ -47,19 +39,3 @@ stopCoProcesses = do checkAttrStop hashObjectStop checkIgnoreStop - -{- Reaps any zombie processes that may be hanging around. - - - - Warning: Not thread safe. Anything that was expecting to wait - - on a process and get back an exit status is going to be confused - - if this reap gets there first. -} -reapZombies :: IO () -#ifndef mingw32_HOST_OS -reapZombies = - -- throws an exception when there are no child processes - catchDefaultIO Nothing (getAnyProcessStatus False True) - >>= maybe (return ()) (const reapZombies) - -#else -reapZombies = return () -#endif diff --git a/Benchmark.hs b/Benchmark.hs index c365f0530e..4f191b501e 100644 --- a/Benchmark.hs +++ b/Benchmark.hs @@ -15,7 +15,6 @@ import CmdLine import CmdLine.GitAnnex.Options import qualified Annex import qualified Annex.Branch -import Annex.Action import qualified Options.Applicative as O @@ -35,10 +34,6 @@ mkGenerator cmds userinput = do -- The cmd is run for benchmarking without startup or -- shutdown actions. Annex.eval st $ performCommandAction cmd seek noop - -- Since the cmd will be run many times, some zombie - -- processes that normally only occur once per command - -- will build up; reap them. - reapZombies where -- Simplified versio of CmdLine.dispatch, without support for fuzzy -- matching or out-of-repo commands. diff --git a/Test/Framework.hs b/Test/Framework.hs index 79737b5481..ce7f482d06 100644 --- a/Test/Framework.hs +++ b/Test/Framework.hs @@ -245,15 +245,13 @@ cleanup dir = whenM (doesDirectoryExist dir) $ do finalCleanup :: IO () finalCleanup = whenM (doesDirectoryExist tmpdir) $ do - Annex.Action.reapZombies Command.Uninit.prepareRemoveAnnexDir' tmpdir catchIO (removeDirectoryForCleanup tmpdir) $ \e -> do print e putStrLn "sleeping 10 seconds and will retry directory cleanup" Utility.ThreadScheduler.threadDelaySeconds $ Utility.ThreadScheduler.Seconds 10 - whenM (doesDirectoryExist tmpdir) $ do - Annex.Action.reapZombies + whenM (doesDirectoryExist tmpdir) $ removeDirectoryForCleanup tmpdir checklink :: FilePath -> Assertion