* [gentoo-portage-dev] [PATCH] portage.process.spawn: default close_fds=False (bug 648432)
@ 2018-02-21 23:27 99% Zac Medico
0 siblings, 0 replies; 1+ results
From: Zac Medico @ 2018-02-21 23:27 UTC (permalink / raw
To: gentoo-portage-dev; +Cc: Zac Medico
For python3.4 and later, default to close_fds=False, since file
descriptors are non-inheritable by default due to PEP 446. This solves
a performance problem on systems like FreeBSD, where our get_open_fds
function returns all possible file descriptor values (including those
that are not open).
Bug: https://bugs.gentoo.org/648432
See: https://www.python.org/dev/peps/pep-0446/
---
pym/portage/process.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/pym/portage/process.py b/pym/portage/process.py
index bc4efb5fe..4d96f156e 100644
--- a/pym/portage/process.py
+++ b/pym/portage/process.py
@@ -196,7 +196,8 @@ def cleanup():
def spawn(mycommand, env={}, opt_name=None, fd_pipes=None, returnpid=False,
uid=None, gid=None, groups=None, umask=None, logfile=None,
- path_lookup=True, pre_exec=None, close_fds=True, unshare_net=False,
+ path_lookup=True, pre_exec=None,
+ close_fds=(sys.version_info < (3, 4)), unshare_net=False,
unshare_ipc=False, cgroup=None):
"""
Spawns a given command.
@@ -228,7 +229,8 @@ def spawn(mycommand, env={}, opt_name=None, fd_pipes=None, returnpid=False,
@param pre_exec: A function to be called with no arguments just prior to the exec call.
@type pre_exec: callable
@param close_fds: If True, then close all file descriptors except those
- referenced by fd_pipes (default is True).
+ referenced by fd_pipes (default is True for python3.3 and earlier, and False for
+ python3.4 and later due to non-inheritable file descriptor behavior from PEP 446).
@type close_fds: Boolean
@param unshare_net: If True, networking will be unshared from the spawned process
@type unshare_net: Boolean
--
2.13.6
^ permalink raw reply related [relevance 99%]
Results 1-1 of 1 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2018-02-21 23:27 99% [gentoo-portage-dev] [PATCH] portage.process.spawn: default close_fds=False (bug 648432) Zac Medico
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox