the syncer now pushes out changes to remotes, in parallel

Note that, since this always pushes branch synced/master to the remote, it
assumes that master has already gotten all the commits that are on the
remote merged in. Otherwise, fast-forward prevention may prevent the push.

That's probably ok, because the next stage is to automatically detect
incoming pushes and merge.
This commit is contained in:
Joey Hess 2012-06-22 15:46:21 -04:00
parent 28e28bc043
commit e9630e90de
4 changed files with 105 additions and 28 deletions

View file

@ -24,6 +24,12 @@ runEvery n a = forever $ do
threadDelaySeconds n
a
runEveryWith :: Seconds -> a -> (a -> IO a) -> IO ()
runEveryWith n val a = do
threadDelaySeconds n
val' <- a val
runEveryWith n val' a
threadDelaySeconds :: Seconds -> IO ()
threadDelaySeconds (Seconds n) = unboundDelay (fromIntegral n * oneSecond)
where