Kaydet (Commit) ace31021 authored tarafından Amaury Forgeot d'Arc's avatar Amaury Forgeot d'Arc

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)
........
üst 414c91f7
......@@ -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
......
......@@ -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():
......
......@@ -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
......
......@@ -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__
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment