AI 145086: Use process groups to avoid a collision between dexopt and ProcessManager.
If the ProcessManager thread was waiting for a child process to finish,
it could inadvertently capture the exit status of dexopt. This
confused the VM somewhat. With this change the dexopt child runs in
its own process group, and the ProcessManager only waits for children
in the parent's process group.
I also now create a new process in the DexClassLoader test to check for
clashes. (It's a race, but it nearly always hits on the device, and
occasionally hits on desktop.)
BUG=1777736
Automated import of CL 145086
3 files changed