No issue #
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@curii.com>
throttle := throttle{Max: runtime.GOMAXPROCS(0)}
for _, infile := range infiles {
infile := infile
throttle := throttle{Max: runtime.GOMAXPROCS(0)}
for _, infile := range infiles {
infile := infile
- throttle.Acquire()
- go func() {
- defer throttle.Release()
+ throttle.Go(func() error {
f, err := open(infile)
if err != nil {
f, err := open(infile)
if err != nil {
- throttle.Report(err)
- return
}
defer f.Close()
dir, _ := filepath.Split(infile)
namespace := dirNamespace[dir]
log.Printf("reading %s (namespace %d)", infile, namespace)
}
defer f.Close()
dir, _ := filepath.Split(infile)
namespace := dirNamespace[dir]
log.Printf("reading %s (namespace %d)", infile, namespace)
- err = DecodeLibrary(f, strings.HasSuffix(infile, ".gz"), func(ent *LibraryEntry) error {
+ return DecodeLibrary(f, strings.HasSuffix(infile, ".gz"), func(ent *LibraryEntry) error {
if err := throttle.Err(); err != nil {
return err
}
if err := throttle.Err(); err != nil {
return err
}
- throttle.Report(err)
- }()
}
throttle.Wait()
if throttle.Err() != nil {
}
throttle.Wait()
if throttle.Err() != nil {