From ff9a3294468e49943c5e0abc55f09e869adbd7f0 Mon Sep 17 00:00:00 2001 From: auvred Date: Sat, 5 Apr 2025 10:59:31 +0300 Subject: [PATCH] create checkers in parallel --- internal/compiler/program.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/compiler/program.go b/internal/compiler/program.go index 9e9443d0458..47df8bf02c4 100644 --- a/internal/compiler/program.go +++ b/internal/compiler/program.go @@ -215,9 +215,13 @@ func (p *Program) CheckSourceFiles() { func (p *Program) createCheckers() { p.checkersOnce.Do(func() { p.checkers = make([]*checker.Checker, core.IfElse(p.programOptions.SingleThreaded, 1, 4)) + wg := core.NewWorkGroup(p.programOptions.SingleThreaded) for i := range p.checkers { - p.checkers[i] = checker.NewChecker(p) + wg.Queue(func() { + p.checkers[i] = checker.NewChecker(p) + }) } + wg.RunAndWait() p.checkersByFile = make(map[*ast.SourceFile]*checker.Checker) for i, file := range p.files { p.checkersByFile[file] = p.checkers[i%len(p.checkers)]