diff --git a/main.go b/main.go index 3e413fd..3ae47b2 100644 --- a/main.go +++ b/main.go @@ -329,9 +329,10 @@ func (b *BuildManager) refreshSRCINFOs(ctx context.Context, path string) error { cur := 0 wg := sync.WaitGroup{} for i := 0; i < runtime.NumCPU(); i++ { - if cur+step > len(pkgBuilds) { - step -= cur + step - len(pkgBuilds) + if i == runtime.NumCPU()-1 { + step = len(pkgBuilds) - cur } + wg.Add(1) go func(pkgBuilds []string) { defer wg.Done() diff --git a/utils.go b/utils.go index c5b7394..f21a4d6 100644 --- a/utils.go +++ b/utils.go @@ -568,41 +568,43 @@ func housekeeping(repo string, march string, wg *sync.WaitGroup) error { } } - // check queued packages for eligibility - log.Debugf("[HK/%s] check queued packages", fullRepo) - qPackages, err := db.DbPackage.Query().Where( - dbpackage.And( - dbpackage.RepositoryEQ(dbpackage.Repository(repo)), - dbpackage.March(march), - dbpackage.StatusEQ(dbpackage.StatusQueued), - )).All(context.Background()) - if err != nil { - return err - } - - for _, dbPkg := range qPackages { - pkg := &ProtoPackage{ - Pkgbase: dbPkg.Pkgbase, - Repo: dbPkg.Repository, - FullRepo: dbPkg.Repository.String() + "-" + dbPkg.March, - DbPackage: dbPkg, - March: dbPkg.March, - } - - var upstream string - switch pkg.DbPackage.Repository { - case dbpackage.RepositoryCore, dbpackage.RepositoryExtra: - upstream = "upstream-core-extra" - case dbpackage.RepositoryCommunity: - upstream = "upstream-community" - } - pkg.Pkgbuild = filepath.Join(conf.Basedir.Work, upstreamDir, upstream, dbPkg.Pkgbase, "repos", pkg.DbPackage.Repository.String()+"-"+conf.Arch, "PKGBUILD") - - _, err := pkg.isEligible(context.Background()) + /* + // check queued packages for eligibility + log.Debugf("[HK/%s] check queued packages", fullRepo) + qPackages, err := db.DbPackage.Query().Where( + dbpackage.And( + dbpackage.RepositoryEQ(dbpackage.Repository(repo)), + dbpackage.March(march), + dbpackage.StatusEQ(dbpackage.StatusQueued), + )).All(context.Background()) if err != nil { - log.Warningf("[HK/%s] unable to determine status for %s: %v", fullRepo, dbPkg.Pkgbase, err) + return err } - } + + for _, dbPkg := range qPackages { + pkg := &ProtoPackage{ + Pkgbase: dbPkg.Pkgbase, + Repo: dbPkg.Repository, + FullRepo: dbPkg.Repository.String() + "-" + dbPkg.March, + DbPackage: dbPkg, + March: dbPkg.March, + } + + var upstream string + switch pkg.DbPackage.Repository { + case dbpackage.RepositoryCore, dbpackage.RepositoryExtra: + upstream = "upstream-core-extra" + case dbpackage.RepositoryCommunity: + upstream = "upstream-community" + } + pkg.Pkgbuild = filepath.Join(conf.Basedir.Work, upstreamDir, upstream, dbPkg.Pkgbase, "repos", pkg.DbPackage.Repository.String()+"-"+conf.Arch, "PKGBUILD") + + _, err := pkg.isEligible(context.Background()) + if err != nil { + log.Warningf("[HK/%s] unable to determine status for %s: %v", fullRepo, dbPkg.Pkgbase, err) + } + } + */ log.Debugf("[HK/%s] all tasks finished", fullRepo) return nil