when all you have is a zombie, everything looks like a shotgun
Actually, let's do a targeted fix of the actual forkProcess that was not waited on. The global reap is moved back to the end, after the long-running git processes actually exit.
This commit is contained in:
parent
49f21dd9ba
commit
61fbea992d
2 changed files with 4 additions and 4 deletions
|
@ -85,9 +85,7 @@ tryRun' :: Integer -> Annex.AnnexState -> [Annex Bool] -> IO ()
|
|||
tryRun' errnum state (a:as) = do
|
||||
result <- try $ Annex.run state $ do
|
||||
AnnexQueue.flushWhenFull
|
||||
r <- a
|
||||
liftIO Git.reap
|
||||
return r
|
||||
a
|
||||
case result of
|
||||
Left err -> do
|
||||
Annex.eval state $ do
|
||||
|
@ -106,4 +104,5 @@ startup = return True
|
|||
shutdown :: Annex Bool
|
||||
shutdown = do
|
||||
saveState
|
||||
liftIO Git.reap -- zombies from long-running git processes
|
||||
return True
|
||||
|
|
|
@ -218,7 +218,7 @@ gpgCipherHandle params c a b = do
|
|||
|
||||
params' <- gpgParams $ passphrase ++ params
|
||||
(pid, fromh, toh) <- hPipeBoth "gpg" params'
|
||||
_ <- forkProcess $ do
|
||||
pid2 <- forkProcess $ do
|
||||
L.hPut toh =<< a
|
||||
hClose toh
|
||||
exitSuccess
|
||||
|
@ -227,6 +227,7 @@ gpgCipherHandle params c a b = do
|
|||
|
||||
-- cleanup
|
||||
forceSuccess pid
|
||||
_ <- getProcessStatus True False pid2
|
||||
closeFd frompipe
|
||||
return ret
|
||||
|
||||
|
|
Loading…
Reference in a new issue