SCons: Remove run_in_subprocess
& subprocess_main
dependencies
#89393
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.
After getting the idea1 to check if build-flakiness on Windows is still an issue, it seems that the root cause had everything to do with ensuring that a partially-generated file gets deleted on build failure. For whatever reason, this wasn't consistently happening on Windows, so a pretty massive workaround had to be implemented. This PR implements a new contingency plan in the form of
purge_flaky_files
: a newatexit
function that will ensure any "targeted" files tied to build failures are properly removed. Consequently, the need for the old system's complex workarounds are no longer necessary & the relevant functions have been removed. The only other refactoring necessary was ensuring that thetarget
andsource
arguments are properly parsed as strings/paths in functions that previously relied on being a subprocess (run_in_subprocess
converted those arguments previously, even for non-Windows platforms).Sidenote: While it's now entirely possible to bring back the generator functions to their respective
SCsub
files, that's a bit outside this PR's scope. I'd rather that conversion process be part of a general cleanup of the generator functions, as most don't utilize "modern" Python conventions. More importantly, it would risk hiding away the "real" changes of this PR.Footnotes
https://github.com/godotengine/godot/pull/89365#issuecomment-1987345654 ↩