merge disable openpty conditional from branches/prefix
authorFabian Groffen <grobian@gentoo.org>
Wed, 7 Oct 2009 19:23:16 +0000 (19:23 -0000)
committerFabian Groffen <grobian@gentoo.org>
Wed, 7 Oct 2009 19:23:16 +0000 (19:23 -0000)
svn path=/main/trunk/; revision=14515

pym/portage/__init__.py

index 8969db3e0a3a6dd9cdc1f75b5c13d17b815b40b1..c2acfc4516e96ddd3fd87b1b4ccc885c898f80f7 100644 (file)
@@ -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):