New submission from STINNER Victor <vstin...@python.org>:
The default value of subprocess.Popen "close_fds" parameter changed to True in Python 3. Compared to Python 2, close_fds=True can make Popen 10x slower: see bpo-37790. A single close(fd) syscall is cheap. But when MAXFDS (maximum file descriptor number) is high, the loop calling close(fd) on each file descriptor can take several milliseconds. On FreeBSD, the _posixsubprocess could use closefrom() to reduce the number of syscalls. On Linux, _posixsubprocess lists the content of /proc/self/fd/ to only close open file descriptor, after fork() and before exec(). ---------- components: Library (Lib) messages: 351351 nosy: vstinner priority: normal severity: normal status: open title: FreeBSD: Optimize subprocess.Popen(close_fds=True) using closefrom() type: enhancement versions: Python 3.9 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue38061> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com