JobTree
Ready-to-run robot software for hobby robotics.
In the namespace platform::spawn. Declared in src/libs/libplatform/platform/Spawn.hpp.
Detailed description
A process tree the system holds together: a Job Object on Windows (kiln architecture §KN-A6).
On Windows the pipes and the wait of a child are QProcess's, and the two things QProcess lacks come from the job the child is created in: the peak committed memory of every process that was ever in it, and one call that ends them all. The job is given to the child at creation, through the process's attribute list, so nothing it starts can be outside it, not even for the instant between a start and an assignment. The job also carries the low priority, which every process in it inherits, and ends what is in it when the last handle to it closes, so a broker that dies leaves no build running.
POSIX has its own measured launcher (start, reap and endTree above), and there isSupported() answers false and prepare() refuses.
While a tree's child runs, treeResidentBytes(), residentBytesBySession() and endTree() answer for it by the child's pid, as they answer for a session on POSIX, so the callers of those need no second path.