Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Remote: Postpone the block waiting in
afterCommand
to `BlockWaiting…
…Module` When implementing async upload, we introduced a block waiting behaviour in `RemoteModule#afterCommand` so that uploads happened in the background can be waited before the whole build complete. However, there are other block waiting code in other module's `afterCommand` method (e.g. BES module). Block waiting in remote module will prevent other modules' `afterCommand` from executing until it's completed. This causes issues like bazelbuild#14576. This PR adds a new module `BlockWaitingModule` whose sole purpose is to accept tasks submitted by other modules in `afterCommand` and block waiting all the tasks in its own `afterCommand` method. So those tasks can be executed in parallel. This PR only updates RemoteModule's `afterCommand` method to submit block waiting task. Other modules should be updated to use `BlockWaitingModule` as well but that's beyond the scope this this PR. This PR along with 73a76a8 fix bazelbuild#14576. Closes bazelbuild#14618. PiperOrigin-RevId: 424295121 (cherry picked from commit 621649d)
- Loading branch information