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() }