* When killing a build hook, kill the entire process group (as

intended).  This ensures that any ssh child processes to remote
  machines are also killed, and thus the Nix process on the remote
  machine also exits.  Without this, the remote Nix process will
  continue until it exists or until its stdout buffer gets full and it
  locks up.  (Partially fixes NIX-35.)
This commit is contained in:
Eelco Dolstra 2006-02-02 16:27:31 +00:00
parent 6e2eaaec96
commit b90daaaf6c

View file

@ -931,6 +931,7 @@ DerivationGoal::HookReply DerivationGoal::tryBuildHook()
} }
/* parent */ /* parent */
pid.setSeparatePG(true);
logPipe.writeSide.close(); logPipe.writeSide.close();
worker.childStarted(shared_from_this(), worker.childStarted(shared_from_this(),
pid, singleton<set<int> >(logPipe.readSide), false); pid, singleton<set<int> >(logPipe.readSide), false);