From 08388e739a2e196e35f823463369ca805c098bcf Mon Sep 17 00:00:00 2001 From: Steven Allen Date: Tue, 27 Mar 2018 16:48:59 -0700 Subject: [PATCH] only visit nodes in EnumerateChildrenAsync when asked No idea why this was changed this was introduced in: 08f342e8bada4f4eb0c5462a3623f0c2b828240f (part of #3598) License: MIT Signed-off-by: Steven Allen --- merkledag/merkledag.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/merkledag/merkledag.go b/merkledag/merkledag.go index 197785d39ef..c7a6296daee 100644 --- a/merkledag/merkledag.go +++ b/merkledag/merkledag.go @@ -319,17 +319,17 @@ func EnumerateChildrenAsync(ctx context.Context, getLinks GetLinks, c *cid.Cid, for i := 0; i < FetchGraphConcurrency; i++ { go func() { for ic := range feed { - links, err := getLinks(ctx, ic) - if err != nil { - errChan <- err - return - } - setlk.Lock() - unseen := visit(ic) + shouldVisit := visit(ic) setlk.Unlock() - if unseen { + if shouldVisit { + links, err := getLinks(ctx, ic) + if err != nil { + errChan <- err + return + } + select { case out <- links: case <-fetchersCtx.Done():