assist: With --jobs, parallelize transferring content to/from remotes

Command.Add.seek starts concurrency with CommandStages. And for
Command.Sync, it needs TransferStages. So, to get both types of concurrency
for the two different parts, it either needs to change the type of
concurrency in between, or just call startConcurrency once for each.

It seems safe enough to call startConcurrency twice, because it does shut
down concurrency (mostly) at the end, and eg the old Annex.workers get
emptied.

Sponsored-by: unqueued on Patreon
This commit is contained in:
Joey Hess 2023-07-05 12:24:04 -04:00
parent c2c2abe6ca
commit 3c1d18cb3b
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
4 changed files with 7 additions and 4 deletions

View file

@ -260,10 +260,10 @@ seek o = do
prepMerge
startConcurrency transferStages (seek' o)
seek' o
seek' :: SyncOptions -> CommandSeek
seek' o = do
seek' o = startConcurrency transferStages $ do
let withbranch a = a =<< getCurrentBranch
remotes <- syncRemotes (syncWith o)