forked from ALHP/ALHP.GO
only count packages sent to building for batch-limit
This commit is contained in:
21
main.go
21
main.go
@@ -358,6 +358,16 @@ func (b *BuildManager) parseWorker() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
b.parseWG.Done()
|
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
|
b.build[pkg.March] <- pkg
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -645,10 +655,14 @@ func (b *BuildManager) syncWorker() {
|
|||||||
check(err)
|
check(err)
|
||||||
b.alpmMutex.Unlock()
|
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"))
|
pkgBuilds, err := Glob(filepath.Join(conf.Basedir.Upstream, "/**/PKGBUILD"))
|
||||||
check(err)
|
check(err)
|
||||||
|
|
||||||
queued := map[string]int{}
|
|
||||||
for _, pkgbuild := range pkgBuilds {
|
for _, pkgbuild := range pkgBuilds {
|
||||||
if b.exit {
|
if b.exit {
|
||||||
return
|
return
|
||||||
@@ -687,11 +701,6 @@ func (b *BuildManager) syncWorker() {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if queued[march] >= conf.Build.Batch {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
queued[march]++
|
|
||||||
// send to parse
|
// send to parse
|
||||||
b.parseWG.Add(1)
|
b.parseWG.Add(1)
|
||||||
b.parse <- &BuildPackage{
|
b.parse <- &BuildPackage{
|
||||||
|
2
utils.go
2
utils.go
@@ -67,6 +67,8 @@ type BuildManager struct {
|
|||||||
buildProcesses []*os.Process
|
buildProcesses []*os.Process
|
||||||
buildProcMutex sync.RWMutex
|
buildProcMutex sync.RWMutex
|
||||||
alpmMutex sync.RWMutex
|
alpmMutex sync.RWMutex
|
||||||
|
queued map[string]int
|
||||||
|
queuedLock sync.RWMutex
|
||||||
}
|
}
|
||||||
|
|
||||||
type Conf struct {
|
type Conf struct {
|
||||||
|
Reference in New Issue
Block a user