func parallelWalk()

in experimental/storage.go [29:48]


func parallelWalk(rootPath string, fn func(string) error) error {
	pwg := parallelWalkRunner.group()

	err := currentStorage.List(rootPath, func(listPath string, info fileInfo, err error) error {
		if !info.directory {
			return nil
		}

		pwg.dispatch(func() error {
			walkPath := filepath.Join(rootPath, listPath)
			return fn(walkPath)
		})
		return nil
	})
	if err != nil {
		return err
	}

	return pwg.finish()
}