(g *errgroup.Group)
| 198 | } |
| 199 | |
| 200 | func (w *Worker) waitForErrorGroupOrContextCancelled(g *errgroup.Group) error { |
| 201 | if g == nil { |
| 202 | return nil |
| 203 | } |
| 204 | |
| 205 | done := make(chan error, 1) |
| 206 | go func() { |
| 207 | waitErr := g.Wait() |
| 208 | done <- waitErr |
| 209 | }() |
| 210 | |
| 211 | select { |
| 212 | case err := <-done: |
| 213 | return err |
| 214 | case <-w.ctx.Done(): |
| 215 | return w.ctx.Err() |
| 216 | case <-w.quit: |
| 217 | return nil |
| 218 | } |
| 219 | } |
| 220 | |
| 221 | func (w *Worker) Start() error { |
| 222 | slog.DebugContext(w.ctx, "starting cache worker") |