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.
|
||||
AC_FUNC_FORK()
|
||||
#AC_FUNC_FORK()
|
||||
|
||||
|
||||
# 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. */
|
||||
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
|
||||
|
|
Loading…
Reference in a new issue