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
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",
"check_output", "CalledProcessError"]
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():
unit_tests = [ProcessTestCase]
-if subprocess._has_poll:
+if getattr(subprocess, '_has_poll', False):
class ProcessTestCaseNoPoll(ProcessTestCase):
def setUp(self):
subprocess._has_poll = False
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__