move ugly rsync zombie workaround
This reaping of any processes came to cause me problems when redoing the rsync special remote -- a gpg process that was running gets waited on and the place that then checks its return code fails. I cannot reproduce any zombies when using the rsync special remote. But I still can when using a normal git remote, accessed over ssh. There is 1 zombie per file downloaded without this horrible hack enabled. So, move the hack to only be used in that case.
This commit is contained in:
parent
b3fe23b552
commit
6c450aad1d
2 changed files with 10 additions and 9 deletions
|
@ -66,14 +66,8 @@ rsyncParamsFixup = map fixup
|
|||
- The params must enable rsync's --progress mode for this to work.
|
||||
-}
|
||||
rsyncProgress :: MeterUpdate -> [CommandParam] -> IO Bool
|
||||
rsyncProgress meterupdate params = do
|
||||
r <- catchBoolIO $
|
||||
withHandle StdoutHandle createProcessSuccess p (feedprogress 0 [])
|
||||
{- For an unknown reason, piping rsync's output like this does
|
||||
- causes it to run a second ssh process, which it neglects to wait
|
||||
- on. Reap the resulting zombie. -}
|
||||
reapZombies
|
||||
return r
|
||||
rsyncProgress meterupdate params = catchBoolIO $
|
||||
withHandle StdoutHandle createProcessSuccess p (feedprogress 0 [])
|
||||
where
|
||||
p = proc "rsync" (toCommand $ rsyncParamsFixup params)
|
||||
feedprogress prev buf h = do
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue