[swarming] Fix waiting for results, broken in the previous commit.

Previous commit changed `resultsCh` to be non-buffered. It means
if nothing is reading from it, writes to it block.

swarming.GetMany (in "WaitAll" mode) blocks until all tasks are
finished. It means we don't read from `resultsCh` until all the
waiting is done. Effectively it means we wait for tasks to finish
first, and only then fetch their results.

Everything still technically works, but concurrency is limited.

To truly do fetching and waiting at the same time, just run
swarming.GetMany itself in a goroutine (an alternative is to
do reading from `resultCh` in a goroutine, but it is more

R=chanli@chromium.org, randymaldonado@google.com

Change-Id: I0d02a9c38791697a6599e8ee87518c1a90c0d3f5
Reviewed-on: https://chromium-review.googlesource.com/c/infra/luci/luci-go/+/5337043
Commit-Queue: Vadim Shtayura <vadimsh@chromium.org>
Reviewed-by: Chan Li <chanli@chromium.org>
1 file changed
tree: 90482e4b8c067bf6ce3d63f2eb3eee34e99f24b8
  1. analysis/
  2. appengine/
  3. auth/
  4. auth_service/
  5. bisection/
  6. build/
  7. buildbucket/
  8. casviewer/
  9. cipd/
  10. cipkg/
  11. client/
  12. common/
  13. config/
  14. config_service/
  15. cv/
  16. deploy/
  17. examples/
  18. gae/
  19. gce/
  20. grpc/
  21. hardcoded/
  22. led/
  23. logdog/
  24. luci_notify/
  25. lucicfg/
  26. lucictx/
  27. luciexe/
  28. mailer/
  29. milo/
  30. mmutex/
  31. provenance/
  32. resultdb/
  33. scheduler/
  34. scripts/
  35. server/
  36. standalone/
  37. starlark/
  38. swarming/
  39. teams/
  40. third_party/
  41. tokenserver/
  42. tools/
  43. tree_status/
  44. vpython/
  45. web/
  46. .gitallowed
  47. .gitattributes
  48. .gitignore
  49. .go-lintable
  51. codereview.settings
  54. go.mod
  55. go.sum
  57. OWNERS
  58. PRESUBMIT.py
  59. README.md
  60. tools.go

luci-go: LUCI services and tools in Go



LUCI Go code is meant to be worked on from an Chromium infra.git checkout, which enforces packages versions and Go toolchain version. First get fetch via depot_tools.git then run:

fetch infra
cd infra/go
eval `./env.py`
cd src/go.chromium.org/luci

It is now possible to directly install tools with go install:

go install go.chromium.org/luci/auth/client/cmd/...@latest
go install go.chromium.org/luci/buildbucket/cmd/...@latest
go install go.chromium.org/luci/cipd/client/cmd/...@latest
go install go.chromium.org/luci/client/cmd/...@latest
go install go.chromium.org/luci/cv/cmd/...@latest
go install go.chromium.org/luci/gce/cmd/...@latest
go install go.chromium.org/luci/grpc/cmd/...@latest
go install go.chromium.org/luci/logdog/client/cmd/...@latest
go install go.chromium.org/luci/luci_notify/cmd/...@latest
go install go.chromium.org/luci/lucicfg/cmd/...@latest
go install go.chromium.org/luci/luciexe/legacy/cmd/...@latest
go install go.chromium.org/luci/mailer/cmd/...@latest
go install go.chromium.org/luci/mmutex/cmd/...@latest
go install go.chromium.org/luci/resultdb/cmd/...@latest
go install go.chromium.org/luci/server/cmd/...@latest
go install go.chromium.org/luci/swarming/cmd/...@latest
go install go.chromium.org/luci/tokenserver/cmd/...@latest
go install go.chromium.org/luci/tools/cmd/...@latest


Contributing uses the same flow as Chromium contributions.