Introduce cross-process resource management for tasks #5859
These APIs can advise a task that wishes to do work with its own internal parallelism. The task can request as many (abstracted) CPU cores as it desires, and the MSBuild engine will keep track of how many have been requested and prevent the machine from being completely overloaded.
Since this is advisory only, existing tasks will be unaffected. The Visual C++ tasks plan to opt into this.
…rces consumed but want to start a task
…hreads yielded + reacquiring)
…th Yielded tasks busy
Forgind left a comment •
My only reservation is that there aren't a lot of features to prevent users from shooting themselves in the foot, especially in unusual circumstances with highly oversubscribed machines and/or low-priority builds, but I don't think that should hold you back. Thanks for picking this up and driving it through!