generator: Can perform synchronous generation

This commit is contained in:
nemunaire 2023-07-10 12:10:03 +02:00
parent ec98e521dc
commit 1769938205
13 changed files with 214 additions and 81 deletions

View file

@ -29,7 +29,7 @@ func reloadSettings(config *settings.Settings) {
fic.WChoiceCoefficient = config.WChoiceCurCoefficient
fic.ExerciceCurrentCoefficient = config.ExerciceCurCoefficient
ChStarted = config.Start.Unix() > 0 && time.Since(config.Start) >= 0
if lastRegeneration != config.Generation || fic.PartialValidation != config.PartialValidation || fic.UnlockedChallengeDepth != config.UnlockedChallengeDepth || fic.UnlockedChallengeUpTo != config.UnlockedChallengeUpTo || fic.DisplayAllFlags != config.DisplayAllFlags || fic.FirstBlood != config.FirstBlood || fic.SubmissionCostBase != config.SubmissionCostBase || fic.SubmissionUniqueness != config.SubmissionUniqueness || fic.DiscountedFactor != config.DiscountedFactor {
if fic.PartialValidation != config.PartialValidation || fic.UnlockedChallengeDepth != config.UnlockedChallengeDepth || fic.UnlockedChallengeUpTo != config.UnlockedChallengeUpTo || fic.DisplayAllFlags != config.DisplayAllFlags || fic.FirstBlood != config.FirstBlood || fic.SubmissionCostBase != config.SubmissionCostBase || fic.SubmissionUniqueness != config.SubmissionUniqueness || fic.DiscountedFactor != config.DiscountedFactor {
fic.PartialValidation = config.PartialValidation
fic.UnlockedChallengeDepth = config.UnlockedChallengeDepth
fic.UnlockedChallengeUpTo = config.UnlockedChallengeUpTo
@ -45,14 +45,17 @@ func reloadSettings(config *settings.Settings) {
if !skipInitialGeneration {
log.Println("Generating files...")
go func() {
genAll()
waitList := genAll()
for _, e := range waitList {
<-e
}
log.Println("Full generation done")
}()
lastRegeneration = time.Now()
} else {
skipInitialGeneration = false
log.Println("Regeneration skipped by option.")
}
lastRegeneration = config.Generation
} else {
log.Println("No change found. Skipping regeneration.")
}
@ -105,6 +108,8 @@ func main() {
}
http.HandleFunc("/enqueue", enqueueHandler)
http.HandleFunc("/perform", performHandler)
http.HandleFunc("/full", performFullResyncHandler)
// Serve pages
go func() {