Added dependency check after post_build step.
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.
Thanks for this. Im taking a look at it now and while it initially seems reasonable there are a few things I want to check before approving.
Any updates on this? I would love to see the issue this fixes get resolved.