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