From 98cc5cc1eba751d92e5980cceadbdb1677d4b1d1 Mon Sep 17 00:00:00 2001 From: Nicolas De Loof Date: Fri, 20 Nov 2020 17:56:27 +0100 Subject: [PATCH] Fix processing dependency graph only onces per node Signed-off-by: Nicolas De Loof --- local/dependencies.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/local/dependencies.go b/local/dependencies.go index e5ac9a77d..c2239b6da 100644 --- a/local/dependencies.go +++ b/local/dependencies.go @@ -31,9 +31,13 @@ func inDependencyOrder(ctx context.Context, project *types.Project, fn func(cont eg, ctx := errgroup.WithContext(ctx) results := make(chan string) errors := make(chan error) + scheduled := map[string]bool{} for len(graph) > 0 { for _, n := range graph.independents() { service := n.service + if scheduled[service.Name] { + continue + } eg.Go(func() error { err := fn(ctx, service) if err != nil { @@ -43,6 +47,7 @@ func inDependencyOrder(ctx context.Context, project *types.Project, fn func(cont results <- service.Name return nil }) + scheduled[service.Name] = true } select { case result := <-results: