From 179696696f26be7fad49c2dae9d8ad60055cb322 Mon Sep 17 00:00:00 2001 From: zhijian Date: Tue, 11 Feb 2025 18:58:35 +0800 Subject: [PATCH 1/2] sync: list another prefix when finsh one --- pkg/sync/sync.go | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/pkg/sync/sync.go b/pkg/sync/sync.go index 7d2682ca1a05..e7fa991cba8f 100644 --- a/pkg/sync/sync.go +++ b/pkg/sync/sync.go @@ -1373,24 +1373,16 @@ func startProducer(tasks chan<- object.Object, src, dst object.ObjectStorage, pr logger.Infof("ignore prefix %s", c.Key()) continue } - select { - case config.concurrentList <- 1: - wg.Add(1) - go func(prefix string) { - defer wg.Done() - err := startProducer(tasks, src, dst, prefix, config) - if err != nil { - logger.Fatalf("list prefix %s: %s", prefix, err) - } - <-config.concurrentList - }(c.Key()) - default: - err := startProducer(tasks, src, dst, c.Key(), config) + wg.Add(1) + go func(prefix string) { + defer wg.Done() + err := startProducer(tasks, src, dst, prefix, config) if err != nil { - logger.Fatalf("list prefix %s: %s", c.Key(), err) + logger.Fatalf("list prefix %s: %s", prefix, err) } - } - + <-config.concurrentList + }(c.Key()) + config.concurrentList <- 1 } }() From 31ace907a99fddd44eefd827e2b93bb249e9b2c1 Mon Sep 17 00:00:00 2001 From: zhijian Date: Fri, 14 Feb 2025 11:17:19 +0800 Subject: [PATCH 2/2] adjust --- pkg/sync/sync.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/sync/sync.go b/pkg/sync/sync.go index f8c52f9c759c..c36e6a274b16 100644 --- a/pkg/sync/sync.go +++ b/pkg/sync/sync.go @@ -1376,7 +1376,7 @@ func startProducer(tasks chan<- object.Object, src, dst object.ObjectStorage, pr wg.Add(1) go func(prefix string) { defer wg.Done() - err := startProducer(tasks, src, dst, prefix,listDepth-1, config) + err := startProducer(tasks, src, dst, prefix, listDepth-1, config) if err != nil { logger.Fatalf("list prefix %s: %s", prefix, err) }