| 418 | } |
| 419 | |
| 420 | func (r *Runner) waitForErrorGroupOrTimeout(g *errgroup.Group) error { |
| 421 | if g == nil { |
| 422 | return nil |
| 423 | } |
| 424 | |
| 425 | done := make(chan error, 1) |
| 426 | go func() { |
| 427 | done <- g.Wait() |
| 428 | }() |
| 429 | timer := time.NewTimer(60 * time.Second) |
| 430 | defer timer.Stop() |
| 431 | select { |
| 432 | case err := <-done: |
| 433 | return err |
| 434 | case <-timer.C: |
| 435 | return fmt.Errorf("timed out waiting for pool manager start") |
| 436 | } |
| 437 | } |
| 438 | |
| 439 | func (r *Runner) createAndStartRepoPoolManager(repo params.Repository) { |
| 440 | slog.InfoContext(r.ctx, "creating pool manager for repo", "repo_owner", repo.Owner, "repo_name", repo.Name) |