From ace3102131b29081119050dff4e229a58a487976 Mon Sep 17 00:00:00 2001 From: Amaury Forgeot d'Arc Date: Thu, 9 Jul 2009 22:44:11 +0000 Subject: [PATCH] Merged revisions 73916 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r73916 | amaury.forgeotdarc | 2009-07-10 00:37:22 +0200 (ven., 10 juil. 2009) | 5 lines #6416: Fix compilation of the select module on Windows, as well as test_subprocess: PIPE_BUF is not defined on Windows, and probably has no meaning there. Anyway the subprocess module uses another way to perform non-blocking reads (with a thread) ........ --- Doc/library/select.rst | 2 +- Lib/subprocess.py | 11 ++++++----- Lib/test/test_subprocess.py | 2 +- Modules/selectmodule.c | 2 ++ 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Doc/library/select.rst b/Doc/library/select.rst index bffb9cba758..eea442b5d7c 100644 --- a/Doc/library/select.rst +++ b/Doc/library/select.rst @@ -99,7 +99,7 @@ The module defines the following: Files reported as ready for writing by :func:`select`, :func:`poll` or similar interfaces in this module are guaranteed to not block on a write of up to :const:`PIPE_BUF` bytes. - This value is guaranteed by POSIX to be at least 512. + This value is guaranteed by POSIX to be at least 512. Availability: Unix. .. versionadded:: 2.7 diff --git a/Lib/subprocess.py b/Lib/subprocess.py index f7361e1559e..2e7864c77fd 100644 --- a/Lib/subprocess.py +++ b/Lib/subprocess.py @@ -376,6 +376,12 @@ else: import fcntl import pickle + # When select or poll has indicated that the file is writable, + # we can write up to _PIPE_BUF bytes without risk of blocking. + # POSIX defines PIPE_BUF as >= 512. + _PIPE_BUF = getattr(select, 'PIPE_BUF', 512) + + __all__ = ["Popen", "PIPE", "STDOUT", "call", "check_call", "getstatusoutput", "getoutput", "check_output", "CalledProcessError"] @@ -384,11 +390,6 @@ try: except: MAXFD = 256 -# When select or poll has indicated that the file is writable, -# we can write up to _PIPE_BUF bytes without risk of blocking. -# POSIX defines PIPE_BUF as >= 512. -_PIPE_BUF = getattr(select, 'PIPE_BUF', 512) - _active = [] def _cleanup(): diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py index f2a396cd10f..265859a21d9 100644 --- a/Lib/test/test_subprocess.py +++ b/Lib/test/test_subprocess.py @@ -801,7 +801,7 @@ class CommandTests(unittest.TestCase): unit_tests = [ProcessTestCase, CommandTests] -if subprocess._has_poll: +if getattr(subprocess, '_has_poll', False): class ProcessTestCaseNoPoll(ProcessTestCase): def setUp(self): subprocess._has_poll = False diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c index 085537513b2..d40e8b580ed 100644 --- a/Modules/selectmodule.c +++ b/Modules/selectmodule.c @@ -1764,7 +1764,9 @@ PyInit_select(void) Py_INCREF(SelectError); PyModule_AddObject(m, "error", SelectError); +#ifdef PIPE_BUF PyModule_AddIntConstant(m, "PIPE_BUF", PIPE_BUF); +#endif #if defined(HAVE_POLL) #ifdef __APPLE__