diff --git a/hugolib/hugo_sites.go b/hugolib/hugo_sites.go index 624cb2b9f..dbaec1644 100644 --- a/hugolib/hugo_sites.go +++ b/hugolib/hugo_sites.go @@ -484,8 +484,9 @@ func (h *HugoSites) setupTranslations() { func (s *Site) preparePagesForRender(cfg *BuildCfg) { pageChan := make(chan *Page) wg := &sync.WaitGroup{} + numWorkers := getGoMaxProcs() * 4 - for i := 0; i < getGoMaxProcs()*4; i++ { + for i := 0; i < numWorkers; i++ { wg.Add(1) go func(pages <-chan *Page, wg *sync.WaitGroup) { defer wg.Done() diff --git a/hugolib/site.go b/hugolib/site.go index 415a1c597..e2aa7449f 100644 --- a/hugolib/site.go +++ b/hugolib/site.go @@ -1150,11 +1150,10 @@ func (s *Site) readPagesFromSource() chan error { files := s.Source.Files() results := make(chan HandledResult) filechan := make(chan *source.File) - procs := getGoMaxProcs() wg := &sync.WaitGroup{} - - wg.Add(procs * 4) - for i := 0; i < procs*4; i++ { + numWorkers := getGoMaxProcs() * 4 + wg.Add(numWorkers) + for i := 0; i < numWorkers; i++ { go sourceReader(s, filechan, results, wg) } @@ -1178,11 +1177,11 @@ func (s *Site) convertSource() chan error { results := make(chan HandledResult) pageChan := make(chan *Page) fileConvChan := make(chan *source.File) - procs := getGoMaxProcs() + numWorkers := getGoMaxProcs() * 4 wg := &sync.WaitGroup{} - wg.Add(2 * procs * 4) - for i := 0; i < procs*4; i++ { + for i := 0; i < numWorkers; i++ { + wg.Add(2) go fileConverter(s, fileConvChan, results, wg) go pageConverter(pageChan, results, wg) } diff --git a/hugolib/site_render.go b/hugolib/site_render.go index c67743394..5709aa83a 100644 --- a/hugolib/site_render.go +++ b/hugolib/site_render.go @@ -33,11 +33,11 @@ func (s *Site) renderPages() error { go errorCollator(results, errs) - procs := getGoMaxProcs() + numWorkers := getGoMaxProcs() * 4 wg := &sync.WaitGroup{} - for i := 0; i < procs*4; i++ { + for i := 0; i < numWorkers; i++ { wg.Add(1) go pageRenderer(s, pages, results, wg) }