summaryrefslogtreecommitdiffstats
path: root/hugolib/pages_process.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2021-12-22 19:00:32 +0100
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2021-12-23 15:09:27 +0100
commitbd63c1aa56e05e88b162e9fd19b6d21fbc609df7 (patch)
treec3a400a335c644ecd110232ea2ecf803353be167 /hugolib/pages_process.go
parent9eb05807c6c6b5212523d1f7fffc17b692f97ec5 (diff)
Fix "stuck on build" in error situations in content processing
Updates #8166
Diffstat (limited to 'hugolib/pages_process.go')
-rw-r--r--hugolib/pages_process.go9
1 files changed, 8 insertions, 1 deletions
diff --git a/hugolib/pages_process.go b/hugolib/pages_process.go
index 89a306a3b..541c0ae3e 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 {