summaryrefslogtreecommitdiffstats
path: root/pym/portage/package
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-12-15 14:04:28 -0800
committerZac Medico <zmedico@gentoo.org>2012-12-15 14:04:28 -0800
commit0db4c2a0f8b80b3f08a9a1f068a8cd0b2ff1fe4f (patch)
treec204d69eae88d5977ed70fdf32df3ee00b19680b /pym/portage/package
parente91e0dac2fbcec4ebb42af29e2914a120341eefa (diff)
downloadportage-0db4c2a0f8b80b3f08a9a1f068a8cd0b2ff1fe4f.tar.gz
portage-0db4c2a0f8b80b3f08a9a1f068a8cd0b2ff1fe4f.tar.bz2
portage-0db4c2a0f8b80b3f08a9a1f068a8cd0b2ff1fe4f.zip
Handle closed sys.__stdin__, for multiprocessing
Buggy code in python's multiprocessing/process.py closes sys.stdin and reassigns it to open(os.devnull), but fails to update the corresponding __stdin__ reference. So, detect that case and handle it appropriately. The buggy code is visible in http://hg.python.org/lookup/r73708.
Diffstat (limited to 'pym/portage/package')
-rw-r--r--pym/portage/package/ebuild/doebuild.py4
-rw-r--r--pym/portage/package/ebuild/fetch.py2
2 files changed, 3 insertions, 3 deletions
diff --git a/pym/portage/package/ebuild/doebuild.py b/pym/portage/package/ebuild/doebuild.py
index a735ea81b..855c62aed 100644
--- a/pym/portage/package/ebuild/doebuild.py
+++ b/pym/portage/package/ebuild/doebuild.py
@@ -718,7 +718,7 @@ def doebuild(myebuild, mydo, _unused=None, settings=None, debug=0, listonly=0,
mysettings["dbkey"] = ""
pr, pw = os.pipe()
fd_pipes = {
- 0:sys.__stdin__.fileno(),
+ 0:portage._get_stdin().fileno(),
1:sys.__stdout__.fileno(),
2:sys.__stderr__.fileno(),
9:pw}
@@ -1402,7 +1402,7 @@ def spawn(mystring, mysettings, debug=0, free=0, droppriv=0, sesandbox=0, fakero
fd_pipes = keywords.get("fd_pipes")
if fd_pipes is None:
fd_pipes = {
- 0:sys.__stdin__.fileno(),
+ 0:portage._get_stdin().fileno(),
1:sys.__stdout__.fileno(),
2:sys.__stderr__.fileno(),
}
diff --git a/pym/portage/package/ebuild/fetch.py b/pym/portage/package/ebuild/fetch.py
index 59d45be05..0a7bf10bb 100644
--- a/pym/portage/package/ebuild/fetch.py
+++ b/pym/portage/package/ebuild/fetch.py
@@ -64,7 +64,7 @@ def _spawn_fetch(settings, args, **kwargs):
if "fd_pipes" not in kwargs:
kwargs["fd_pipes"] = {
- 0 : sys.__stdin__.fileno(),
+ 0 : portage._get_stdin().fileno(),
1 : sys.__stdout__.fileno(),
2 : sys.__stdout__.fileno(),
}