From f3a9ccc8a19508b364eb5c52ff3386575a91d50c Mon Sep 17 00:00:00 2001 From: Reya C Date: Sat, 3 Apr 2021 02:28:03 -0400 Subject: [PATCH] Only use an open handle during the traversal section, not while waiting for subdirs --- drive-demuxer.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drive-demuxer.go b/drive-demuxer.go index 2ce4f90..da0e8a7 100644 --- a/drive-demuxer.go +++ b/drive-demuxer.go @@ -274,6 +274,7 @@ func (s *Step) AreFilesIdentical(child string) bool { func (s *Step) Walk() { wg := sync.WaitGroup{} + s.OpenHandles <- 1 children := s.ListChildren() s.Bar.AddTotal(int64(len(children))) for _, child := range children { @@ -328,10 +329,8 @@ func (s *Step) Walk() { wg.Add(1) go func() { defer func() { - <-s.OpenHandles wg.Done() }() - s.OpenHandles <- 1 substep.Walk() s.RemoveInputDirs(child) s.Bar.Increment() @@ -345,6 +344,7 @@ func (s *Step) Walk() { } } + <-s.OpenHandles wg.Wait() }