summary refs log tree commit diff
path: root/src/libstore
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2006-02-02 16:27:31 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2006-02-02 16:27:31 +0000
commitb90daaaf6c1f52fe93f4f845da20b122cfea2936 (patch)
treede7769774a4d64448af95bef4f975131c08d03ae /src/libstore
parent6e2eaaec96e96ce593dd1e38d03fcf8d1f62eb55 (diff)
downloadguix-b90daaaf6c1f52fe93f4f845da20b122cfea2936.tar.gz
* 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.)

Diffstat (limited to 'src/libstore')
-rw-r--r--src/libstore/build.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc
index 193974bf83..123248c176 100644
--- a/src/libstore/build.cc
+++ b/src/libstore/build.cc
@@ -931,6 +931,7 @@ DerivationGoal::HookReply DerivationGoal::tryBuildHook()
     }
     
     /* parent */
+    pid.setSeparatePG(true);
     logPipe.writeSide.close();
     worker.childStarted(shared_from_this(),
         pid, singleton<set<int> >(logPipe.readSide), false);