[5.1] Remote: Postpone the block waiting in afterCommand
to BlockWaitingModule
#14833
+67
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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 #14576.This PR adds a new module
BlockWaitingModule
whose sole purpose is to accept tasks submitted by other modules inafterCommand
and block waiting all the tasks in its ownafterCommand
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 useBlockWaitingModule
as well but that's beyond the scope this this PR.This PR along with 73a76a8 fix #14576.
(cherry picked from commit 621649d)
Closes #14703.