Added dependency check after post_build step. #3174
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.
Fixes the race condition for dependencies created within post_build steps #3168.
The issue is that a target will mark itself complete, even though the post_build step could have added additional dependencies to it. This meant that any dependents would start running, without waiting for the post_build dependencies to complete, resulting in a race.
The added code will now re-check all the dependencies of a target, after its post_build step has completed. This way, additional dependencies will properly get waited on, avoiding the race.
I would like to note, however, that the addition is essentially a copy of some code in queueTargetAsync, where the initial dependency checks occur. In this case, this is somewhat duplicating the dependency checks and also re-checking already resolved dependencies, even if a post_build step doesn't change the dependencies.