acd: Fix deadlock in directory traversal code

This commit is contained in:
Nick Craig-Wood 2016-01-24 11:20:55 +00:00
parent c3a0c0c451
commit c47b4f828f

View file

@ -420,11 +420,14 @@ func (f *Fs) listDirNonRecursive(dirID string, path string, out fs.ObjectsChan)
errs <- err
}
// FIXME stop traversal on error?
// Now we have traversed this directory, send these jobs off for traversal
for _, job := range jobs {
traversing.Add(1)
in <- job
}
traversing.Add(len(jobs))
go func() {
// Now we have traversed this directory, send these jobs off for traversal in
// the background
for _, job := range jobs {
in <- job
}
}()
traversing.Done()
}
}()