fix(cli): avoid waitgroup go helper in route aggregation
- commit
- cda2c5a594c61b912e7576ca3e0423ca4840c5bb
- author
- brice · · 2026-05-22 04:34 UTC
- parent
- b9cf20d
- signature
- GPG Verified
CD88F9E564E0102646FB6077A1A07C7C7C3E349D· arch-gpg Verified for the committer email
1 file · +14 -12
M internal/adapters/in/cli/routes.go +14 -12
| @@ -346,16 +346,17 @@ func collectRoutesListAggregateSections(ctx context.Context, cfgPath string, dep | |||
| 346 | 346 | names := sortedRemoteNames(remotes.entries) | |
| 347 | 347 | remoteSections := make([]routeListSection, len(names)) | |
| 348 | 348 | var wg sync.WaitGroup | |
| 349 | - | for i := range names { | |
| 350 | - | name := names[i] | |
| 349 | + | for i, name := range names { | |
| 351 | 350 | entry := remotes.entries[name] | |
| 352 | - | wg.Go(func() { | |
| 353 | - | section, err := deps.loadRemote(ctx, name, entry) | |
| 351 | + | wg.Add(1) | |
| 352 | + | go func(idx int, remoteName string, remoteEntry remote.RemoteEntry) { | |
| 353 | + | defer wg.Done() | |
| 354 | + | section, err := deps.loadRemote(ctx, remoteName, remoteEntry) | |
| 354 | 355 | if err != nil && section.Error == "" { | |
| 355 | 356 | section.Error = err.Error() | |
| 356 | 357 | } | |
| 357 | - | remoteSections[i] = normalizeRouteListRemoteSection(section, name, entry) | |
| 358 | - | }) | |
| 358 | + | remoteSections[idx] = normalizeRouteListRemoteSection(section, remoteName, remoteEntry) | |
| 359 | + | }(i, name, entry) | |
| 359 | 360 | } | |
| 360 | 361 | wg.Wait() | |
| 361 | 362 | ||
| @@ -468,16 +469,17 @@ func collectRoutesStatusAggregateSections(ctx context.Context, cfgPath string, d | |||
| 468 | 469 | names := sortedRemoteNames(remotes.entries) | |
| 469 | 470 | remoteSections := make([]routeStatusSection, len(names)) | |
| 470 | 471 | var wg sync.WaitGroup | |
| 471 | - | for i := range names { | |
| 472 | - | name := names[i] | |
| 472 | + | for i, name := range names { | |
| 473 | 473 | entry := remotes.entries[name] | |
| 474 | - | wg.Go(func() { | |
| 475 | - | section, err := deps.loadRemote(ctx, name, entry) | |
| 474 | + | wg.Add(1) | |
| 475 | + | go func(idx int, remoteName string, remoteEntry remote.RemoteEntry) { | |
| 476 | + | defer wg.Done() | |
| 477 | + | section, err := deps.loadRemote(ctx, remoteName, remoteEntry) | |
| 476 | 478 | if err != nil && section.Error == "" { | |
| 477 | 479 | section.Error = err.Error() | |
| 478 | 480 | } | |
| 479 | - | remoteSections[i] = normalizeRouteStatusRemoteSection(section, name, entry) | |
| 480 | - | }) | |
| 481 | + | remoteSections[idx] = normalizeRouteStatusRemoteSection(section, remoteName, remoteEntry) | |
| 482 | + | }(i, name, entry) | |
| 481 | 483 | } | |
| 482 | 484 | wg.Wait() | |
| 483 | 485 | ||
| @@ -346,16 +346,17 @@ func collectRoutesListAggregateSections(ctx context.Context, cfgPath string, dep | |||||
| 346 | names := sortedRemoteNames(remotes.entries) | 346 | names := sortedRemoteNames(remotes.entries) | ||
| 347 | remoteSections := make([]routeListSection, len(names)) | 347 | remoteSections := make([]routeListSection, len(names)) | ||
| 348 | var wg sync.WaitGroup | 348 | var wg sync.WaitGroup | ||
| 349 | - | for i := range names { | 349 | + | for i, name := range names { |
| 350 | - | name := names[i] | |||
| 351 | entry := remotes.entries[name] | 350 | entry := remotes.entries[name] | ||
| 352 | - | wg.Go(func() { | 351 | + | wg.Add(1) |
| 353 | - | section, err := deps.loadRemote(ctx, name, entry) | 352 | + | go func(idx int, remoteName string, remoteEntry remote.RemoteEntry) { |
| 353 | + | defer wg.Done() | |||
| 354 | + | section, err := deps.loadRemote(ctx, remoteName, remoteEntry) | |||
| 354 | if err != nil && section.Error == "" { | 355 | if err != nil && section.Error == "" { | ||
| 355 | section.Error = err.Error() | 356 | section.Error = err.Error() | ||
| 356 | } | 357 | } | ||
| 357 | - | remoteSections[i] = normalizeRouteListRemoteSection(section, name, entry) | 358 | + | remoteSections[idx] = normalizeRouteListRemoteSection(section, remoteName, remoteEntry) |
| 358 | - | }) | 359 | + | }(i, name, entry) |
| 359 | } | 360 | } | ||
| 360 | wg.Wait() | 361 | wg.Wait() | ||
| 361 | 362 | ||||
| @@ -468,16 +469,17 @@ func collectRoutesStatusAggregateSections(ctx context.Context, cfgPath string, d | |||||
| 468 | names := sortedRemoteNames(remotes.entries) | 469 | names := sortedRemoteNames(remotes.entries) | ||
| 469 | remoteSections := make([]routeStatusSection, len(names)) | 470 | remoteSections := make([]routeStatusSection, len(names)) | ||
| 470 | var wg sync.WaitGroup | 471 | var wg sync.WaitGroup | ||
| 471 | - | for i := range names { | 472 | + | for i, name := range names { |
| 472 | - | name := names[i] | |||
| 473 | entry := remotes.entries[name] | 473 | entry := remotes.entries[name] | ||
| 474 | - | wg.Go(func() { | 474 | + | wg.Add(1) |
| 475 | - | section, err := deps.loadRemote(ctx, name, entry) | 475 | + | go func(idx int, remoteName string, remoteEntry remote.RemoteEntry) { |
| 476 | + | defer wg.Done() | |||
| 477 | + | section, err := deps.loadRemote(ctx, remoteName, remoteEntry) | |||
| 476 | if err != nil && section.Error == "" { | 478 | if err != nil && section.Error == "" { | ||
| 477 | section.Error = err.Error() | 479 | section.Error = err.Error() | ||
| 478 | } | 480 | } | ||
| 479 | - | remoteSections[i] = normalizeRouteStatusRemoteSection(section, name, entry) | 481 | + | remoteSections[idx] = normalizeRouteStatusRemoteSection(section, remoteName, remoteEntry) |
| 480 | - | }) | 482 | + | }(i, name, entry) |
| 481 | } | 483 | } | ||
| 482 | wg.Wait() | 484 | wg.Wait() | ||
| 483 | 485 | ||||