Skip to content

Commit

Permalink
Fixed the "loaded / skipped" count while loading files
Browse files Browse the repository at this point in the history
  • Loading branch information
lkarlslund committed Oct 27, 2022
1 parent 1770d29 commit 84f97f8
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions modules/engine/loaders.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"runtime"
"sort"
"sync"
"sync/atomic"

"github.com/lkarlslund/adalanche/modules/ui"
)
Expand Down Expand Up @@ -106,25 +107,28 @@ func Load(loaders []Loader, path string, cb ProgressCallbackFunc) ([]loaderobjec
ui.Debug().Msg("Processing files with the biggest files first")
fileQueue := make(chan string, runtime.NumCPU()*4)
var fileQueueWG sync.WaitGroup
var skipped int
var skipped uint32
for i := 0; i < runtime.NumCPU(); i++ {
fileQueueWG.Add(1)
go func() {
for filename := range fileQueue {
var handled bool
loaderloop:
for _, loader := range loaders {
fileerr := loader.Load(filename, cb)
switch fileerr {
case nil:
handled = true
break loaderloop
case ErrUninterested:
// loop, and try next loader
default:
skipped++
ui.Error().Msgf("Error from loader %v on file %v: %v", loader.Name(), filename, fileerr)
break loaderloop
}
}
if !handled {
atomic.AddUint32(&skipped, 1)
}
cb(-1, 0) // Either loaded or skipped
}
fileQueueWG.Done()
Expand All @@ -143,7 +147,7 @@ func Load(loaders []Loader, path string, cb ProgressCallbackFunc) ([]loaderobjec
var globalerr error
var totalobjects int

ui.Info().Msgf("Loaded %v files, skipped %v files", len(files)-skipped, skipped)
ui.Info().Msgf("Loaded %v files, skipped %v files", len(files)-int(skipped), skipped)

var aos []loaderobjects

Expand Down

0 comments on commit 84f97f8

Please sign in to comment.