diff options
author | Nico Weber <nicolasweber@gmx.de> | 2016-11-08 00:08:50 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-08 00:08:50 (GMT) |
commit | 21fc1203c1ae8a43812505762407db6842de6bf7 (patch) | |
tree | f51fe7e45f821a85160bffbaae0922ed67426856 /src | |
parent | ef0616e3e46d19d8fd7ae2a505384f8320053262 (diff) | |
parent | 5153cedfd7720547489b6b2e5d5e4485def621c9 (diff) | |
download | Ninja-21fc1203c1ae8a43812505762407db6842de6bf7.zip Ninja-21fc1203c1ae8a43812505762407db6842de6bf7.tar.gz Ninja-21fc1203c1ae8a43812505762407db6842de6bf7.tar.bz2 |
Merge pull request #1182 from moosotc/master
Use POSIX_SPAWN_USEVFORK if available
Diffstat (limited to 'src')
-rw-r--r-- | src/subprocess-posix.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/subprocess-posix.cc b/src/subprocess-posix.cc index 5ffe85b..f1f94e5 100644 --- a/src/subprocess-posix.cc +++ b/src/subprocess-posix.cc @@ -73,8 +73,6 @@ bool Subprocess::Start(SubprocessSet* set, const string& command) { // default action in the new process image, so no explicit // POSIX_SPAWN_SETSIGDEF parameter is needed. - // TODO: Consider using POSIX_SPAWN_USEVFORK on Linux with glibc? - if (!use_console_) { // Put the child in its own process group, so ctrl-c won't reach it. flags |= POSIX_SPAWN_SETPGROUP; @@ -93,6 +91,9 @@ bool Subprocess::Start(SubprocessSet* set, const string& command) { // In the console case, output_pipe is still inherited by the child and // closed when the subprocess finishes, which then notifies ninja. } +#ifdef POSIX_SPAWN_USEVFORK + flags |= POSIX_SPAWN_USEVFORK; +#endif if (posix_spawnattr_setflags(&attr, flags) != 0) Fatal("posix_spawnattr_setflags: %s", strerror(errno)); |