Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[5.1] Remote: Postpone the block waiting in afterCommand to BlockWaitingModule #14833

Commits on Feb 16, 2022

  1. 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)
    coeuvre authored and brentleyjones committed Feb 16, 2022
    Configuration menu
    Copy the full SHA
    4032fed View commit details
    Browse the repository at this point in the history