commit | b03fcf3e6f44eb08dbe0d28135e7ffea531fb34e | [log] [tgz] |
---|---|---|
author | Vadim Shtayura <vadimsh@chromium.org> | Fri Mar 01 01:14:41 2024 |
committer | LUCI CQ <infra-scoped@luci-project-accounts.iam.gserviceaccount.com> | Fri Mar 01 01:14:41 2024 |
tree | 90482e4b8c067bf6ce3d63f2eb3eee34e99f24b8 | |
parent | 09fae412111ce6eb636fc21a786c21d963620b08 [diff] |
[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 complicated). R=chanli@chromium.org, randymaldonado@google.com BUG=40276579 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>
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.