From bafb7a3b83b4f79bc9a7ee14e349f25a7a362d87 Mon Sep 17 00:00:00 2001 From: Giovanni Harting <539@idlegandalf.com> Date: Thu, 2 Dec 2021 10:08:51 +0100 Subject: [PATCH] only count packages sent to building for batch-limit --- main.go | 21 +++++++++++++++------ utils.go | 2 ++ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/main.go b/main.go index 2185e9c..05b3434 100644 --- a/main.go +++ b/main.go @@ -358,6 +358,16 @@ func (b *BuildManager) parseWorker() { } b.parseWG.Done() + + b.queuedLock.RLock() + if b.queued[pkg.March] >= conf.Build.Batch { + b.queuedLock.RUnlock() + continue + } + b.queuedLock.Lock() + b.queued[pkg.March]++ + b.queuedLock.Unlock() + b.build[pkg.March] <- pkg } } @@ -645,10 +655,14 @@ func (b *BuildManager) syncWorker() { check(err) b.alpmMutex.Unlock() + // clear batch limits + b.queuedLock.Lock() + b.queued = map[string]int{} + b.queuedLock.Unlock() + pkgBuilds, err := Glob(filepath.Join(conf.Basedir.Upstream, "/**/PKGBUILD")) check(err) - queued := map[string]int{} for _, pkgbuild := range pkgBuilds { if b.exit { return @@ -687,11 +701,6 @@ func (b *BuildManager) syncWorker() { continue } - if queued[march] >= conf.Build.Batch { - continue - } - - queued[march]++ // send to parse b.parseWG.Add(1) b.parse <- &BuildPackage{ diff --git a/utils.go b/utils.go index 3c04538..c64e2c0 100644 --- a/utils.go +++ b/utils.go @@ -67,6 +67,8 @@ type BuildManager struct { buildProcesses []*os.Process buildProcMutex sync.RWMutex alpmMutex sync.RWMutex + queued map[string]int + queuedLock sync.RWMutex } type Conf struct {