diff options
author | Zac Medico <zmedico@gentoo.org> | 2013-01-15 12:09:21 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2013-01-15 12:09:21 -0800 |
commit | dbe26095102cbdc6d5bef3509f05bc7b42c418cc (patch) | |
tree | fbdc5d18ff9fa33dc7b69fdb6c173312cb4507a8 /pym/_emerge/EbuildSpawnProcess.py | |
parent | 7c624515d0bb106c8a468addff5df153cebf31fc (diff) | |
download | portage-dbe26095102cbdc6d5bef3509f05bc7b42c418cc.tar.gz portage-dbe26095102cbdc6d5bef3509f05bc7b42c418cc.tar.bz2 portage-dbe26095102cbdc6d5bef3509f05bc7b42c418cc.zip |
SpawnProcess: improve dummy pipe allocation logic
By using allocated file descriptors for keys in fd_pipes, we naturally
avoid interference with callers such as FileDigester and MergeProcess.
See the _setup_pipes docstring for more benefits of this allocation
approach.
Diffstat (limited to 'pym/_emerge/EbuildSpawnProcess.py')
-rw-r--r-- | pym/_emerge/EbuildSpawnProcess.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/pym/_emerge/EbuildSpawnProcess.py b/pym/_emerge/EbuildSpawnProcess.py index e1f682a66..26d26fc77 100644 --- a/pym/_emerge/EbuildSpawnProcess.py +++ b/pym/_emerge/EbuildSpawnProcess.py @@ -1,4 +1,4 @@ -# Copyright 2010 Gentoo Foundation +# Copyright 2010-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 from _emerge.AbstractEbuildProcess import AbstractEbuildProcess @@ -13,4 +13,10 @@ class EbuildSpawnProcess(AbstractEbuildProcess): __slots__ = ('fakeroot_state', 'spawn_func') def _spawn(self, args, **kwargs): - return self.spawn_func(args, env=self.settings.environ(), **kwargs) + + env = self.settings.environ() + + if self._dummy_pipe_fd is not None: + env["PORTAGE_PIPE_FD"] = str(self._dummy_pipe_fd) + + return self.spawn_func(args, env=env, **kwargs) |