diff options
-rw-r--r-- | Command/Log.hs | 1 | ||||
-rw-r--r-- | Git/Command.hs | 6 | ||||
-rw-r--r-- | Git/HashObject.hs | 1 | ||||
-rw-r--r-- | Remote/Git.hs | 2 |
4 files changed, 7 insertions, 3 deletions
diff --git a/Command/Log.hs b/Command/Log.hs index 9aaebeca6..c3ce67986 100644 --- a/Command/Log.hs +++ b/Command/Log.hs @@ -69,6 +69,7 @@ start :: M.Map UUID String -> TimeZone -> [CommandParam] -> Bool -> FilePath -> (Key, Backend) -> CommandStart start m zone os gource file (key, _) = do showLog output =<< readLog <$> getLog key os + -- getLog produces a zombie; reap it liftIO Git.Command.reap stop where diff --git a/Git/Command.hs b/Git/Command.hs index 2e9562860..f38d6f72f 100644 --- a/Git/Command.hs +++ b/Git/Command.hs @@ -93,7 +93,11 @@ pipeNullSplit params repo = do pipeNullSplitZombie :: [CommandParam] -> Repo -> IO [String] pipeNullSplitZombie params repo = fst <$> pipeNullSplit params repo -{- Reaps any zombie git processes. -} +{- Reaps any zombie git processes. + - + - 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. -} reap :: IO () reap = do -- throws an exception when there are no child processes diff --git a/Git/HashObject.hs b/Git/HashObject.hs index 7d6b5cc19..e048ce8e5 100644 --- a/Git/HashObject.hs +++ b/Git/HashObject.hs @@ -39,7 +39,6 @@ hashFile h file = CoProcess.query h send receive hashObject :: ObjectType -> String -> Repo -> IO Sha hashObject objtype content repo = getSha subcmd $ do s <- pipeWriteRead (map Param params) content repo - reap -- XXX unsure why this is needed, of if it is anymore return s where subcmd = "hash-object" diff --git a/Remote/Git.hs b/Remote/Git.hs index e7b1ca0e8..b4a730be7 100644 --- a/Remote/Git.hs +++ b/Remote/Git.hs @@ -212,7 +212,7 @@ onLocal r a = do -- No need to update the branch; its data is not used -- for anything onLocal is used to do. Annex.BranchState.disableUpdate - liftIO Git.Command.reap `after` a + a keyUrls :: Git.Repo -> Key -> [String] keyUrls r key = map tourl (annexLocations key) |