Summary
Now that we have the safety guarantees that the Multithreaded APIs (and marker interfaces) provide, we can consider an exciting feature - allowing worker nodes to do work across multiple active builds, taking work from whichever builds are active instead of being constrained to a single logical build for the duration of that build.
Before these APIs, this was too risky because Tasks couldn't be trusted to be stateless - but with the APIs (and some additional documentation clarifying how stateful constructs like C# statics should be used safely) we can experiment with this possibility, which should help prevent the thundering-herd problem of multiple concurrent builds spawning NUMPROCS nodes that we have today.
Background and Motivation
Fill in later
Proposed Feature
Fill in later
Alternative Designs
No response