> Library code should not be relying on globals settings that can change.
Did you try my implementation of the PEP 433 on your project? Did you review my patch implementing the PEP 433? http://hg.python.org/features/pep-433 http://bugs.python.org/issue17036 I expected more change, whereas only very few modules of the stdlib need changes to support both modes (cloexec=False or cloexec=True by default). I made 5 different types of changes. Only th change (3) gives you an idea of how many modules must be fixed to support cloexec=True by default: 4 modules (http.server, multiprocessing, pty, subprocess) on a total of something like 200 modules (stdlib). And I'm not sure that all these modules need to be modified, I have to check again. By the way, I chose to not consider file descriptors 0, 1 and 2 as special: the developer must disable cloexec explicitly for standard streams. If we consider them as special, fewer (or no) modules would require changes. -- (1) add a cloexec parameter, modified modules: * io * asyncore * socket (2) explicitly enable cloexec: usually for security reasons, don't leak a file descriptor in a child process => it's not directly related to this PEP, I should maybe do this in a different commit. Said differently: code works with cloexec enabled or disabled, but I consider that enabled is safer. * cgi * getpass * importlib * logging * os * pty * pydoc * shutil (3) explicitly disable cloexec: code doesn't work if cloexec is set (code relies on file descriptor inherance); modified modules: * http.server: CGI uses dup2() to replace stdin and stdout * multiprocessing: stdin is replaced with /dev/null * pty: dup2() to replace stdin, stdout, stderr * subprocess: dup2() to replace stdin, stdout, stderr (4) refactoring to use the new cloexec parameter: * tempfile (5) apply the default value of the cloexec parameter (in C modules): * curses * mmap * oss * select * random Victor _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com