From: Bjørn Erik Pedersen Date: Wed, 22 Dec 2021 18:00:32 +0000 (+0100) Subject: Fix "stuck on build" in error situations in content processing X-Git-Tag: v0.91.2~4 X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=bd63c1aa56e05e88b162e9fd19b6d21fbc609df7;p=brevno-suite%2Fhugo Fix "stuck on build" in error situations in content processing Updates #8166 --- diff --git a/hugolib/pages_process.go b/hugolib/pages_process.go index 89a306a3..541c0ae3 100644 --- a/hugolib/pages_process.go +++ b/hugolib/pages_process.go @@ -115,17 +115,24 @@ type sitePagesProcessor struct { m *pageMap errorSender herrors.ErrorSender + ctx context.Context itemChan chan interface{} itemGroup *errgroup.Group } func (p *sitePagesProcessor) Process(item interface{}) error { - p.itemChan <- item + select { + case <-p.ctx.Done(): + return nil + default: + p.itemChan <- item + } return nil } func (p *sitePagesProcessor) Start(ctx context.Context) context.Context { p.itemGroup, ctx = errgroup.WithContext(ctx) + p.ctx = ctx p.itemGroup.Go(func() error { for item := range p.itemChan { if err := p.doProcess(item); err != nil {