summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabian Groffen <grobian@gentoo.org>2009-10-07 19:23:16 +0000
committerFabian Groffen <grobian@gentoo.org>2009-10-07 19:23:16 +0000
commitb29ca883b3352d25e6c3772f2f23eab74f7ffd82 (patch)
treeaa7c6d47599a715e60be877a34e6bf0e51af9cee
parentbbfed263f01a7cf6bccc6c2f943058ff8ea334b1 (diff)
downloadportage-b29ca883b3352d25e6c3772f2f23eab74f7ffd82.tar.gz
portage-b29ca883b3352d25e6c3772f2f23eab74f7ffd82.tar.bz2
portage-b29ca883b3352d25e6c3772f2f23eab74f7ffd82.zip
merge disable openpty conditional from branches/prefix
svn path=/main/trunk/; revision=14515
-rw-r--r--pym/portage/__init__.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py
index 8969db3e0..c2acfc451 100644
--- a/pym/portage/__init__.py
+++ b/pym/portage/__init__.py
@@ -3852,7 +3852,21 @@ def _test_pty_eof():
# In some cases, openpty can be slow when it fails. Therefore,
# stop trying to use it after the first failure.
-_disable_openpty = False
+if platform.system() not in ["Linux"]:
+ # Disable the use of openpty on Solaris as it seems Python's openpty
+ # implementation doesn't play nice on Solaris with Portage's
+ # behaviour causing hangs/deadlocks.
+ # Disable on Darwin also, it used to work fine, but since the
+ # introduction of _test_pty_eof Portage hangs (on the
+ # slave_file.close()) indicating some other problems with openpty on
+ # Darwin there
+ # On AIX, haubi reported that the openpty code doesn't work any
+ # longer since the introduction of _test_pty_eof either.
+ # Looks like Python's openpty module is too fragile to use on UNIX,
+ # so only use it on Linux
+ _disable_openpty = True
+else:
+ _disable_openpty = False
_tested_pty = False
def _create_pty_or_pipe(copy_term_size=None):