From: Zac Medico Date: Tue, 8 Jan 2013 02:08:40 +0000 (-0800) Subject: SpawnProcess: stdout_fd FD_CLOEXEC X-Git-Tag: v2.2.0_alpha150~18 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=2a05612d23561d4606e93e73a8e021dc91291ff6;p=portage.git SpawnProcess: stdout_fd FD_CLOEXEC --- diff --git a/pym/_emerge/SpawnProcess.py b/pym/_emerge/SpawnProcess.py index 293e5be8c..f226dcb8f 100644 --- a/pym/_emerge/SpawnProcess.py +++ b/pym/_emerge/SpawnProcess.py @@ -1,6 +1,12 @@ # Copyright 2008-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 +try: + import fcntl +except ImportError: + # http://bugs.jython.org/issue1074 + fcntl = None + from _emerge.SubProcess import SubProcess import sys import portage @@ -105,6 +111,15 @@ class SpawnProcess(SubProcess): stdout_fd = None if can_log and not self.background: stdout_fd = os.dup(fd_pipes_orig[1]) + if fcntl is not None: + try: + fcntl.FD_CLOEXEC + except AttributeError: + pass + else: + fcntl.fcntl(stdout_fd, fcntl.F_SETFL, + fcntl.fcntl(stdout_fd, + fcntl.F_GETFL) | fcntl.FD_CLOEXEC) self._pipe_logger = PipeLogger(background=self.background, scheduler=self.scheduler, input_fd=master_fd,