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.
This commit is contained in:
parent
8541d27fce
commit
f794465ca8
2 changed files with 2 additions and 2 deletions
|
@ -116,7 +116,7 @@ AC_CHECK_HEADERS([sys/mount.h], [], [],
|
||||||
|
|
||||||
|
|
||||||
# Check for vfork.
|
# Check for vfork.
|
||||||
AC_FUNC_FORK()
|
#AC_FUNC_FORK()
|
||||||
|
|
||||||
|
|
||||||
# Check for lutimes, optionally used for changing the mtime of
|
# Check for lutimes, optionally used for changing the mtime of
|
||||||
|
|
|
@ -355,7 +355,7 @@ void Goal::trace(const format & f)
|
||||||
|
|
||||||
|
|
||||||
/* Common initialisation performed in child processes. */
|
/* 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
|
/* Put the child in a separate session (and thus a separate
|
||||||
process group) so that it has no controlling terminal (meaning
|
process group) so that it has no controlling terminal (meaning
|
||||||
|
|
Loading…
Reference in a new issue