diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2012-11-15 19:35:18 +0100 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2012-11-15 19:35:18 +0100 |
commit | f794465ca8bd2a8d41ee3b6928db5fb1479dc96d (patch) | |
tree | 972ed5f7b7327444556b0cdd2c92697a44575673 /src/libstore | |
parent | 8541d27fce95f1f6a4a6c89bcbc09503ff7ea092 (diff) |
Disable use of vfork()
vfork() is just too weird. For instance, in this build:
http://hydra.nixos.org/build/3330487
the value fromHook.writeSide becomes corrupted in the parent, even
though the child only reads from it. At -O0 the problem goes away.
Probably the child is overriding some spilled temporary variable.
If I get bored I may implement using posix_spawn() instead.
Diffstat (limited to 'src/libstore')
-rw-r--r-- | src/libstore/build.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc index 2fd071eba..9e0db9ee7 100644 --- a/src/libstore/build.cc +++ b/src/libstore/build.cc @@ -355,7 +355,7 @@ void Goal::trace(const format & f) /* Common initialisation performed in child processes. */ -void commonChildInit(Pipe & logPipe) +static void commonChildInit(Pipe & logPipe) { /* Put the child in a separate session (and thus a separate process group) so that it has no controlling terminal (meaning |