[Python-checkins] r65469 - python/trunk/Doc/library/subprocess.rst
gregory.p.smith
python-checkins at python.org
Mon Aug 4 03:03:51 CEST 2008
Author: gregory.p.smith
Date: Mon Aug 4 03:03:50 2008
New Revision: 65469
Log:
issue1606: Add warnings to the subprocess documentation about common pitfalls
of using pipes that cause deadlocks.
Modified:
python/trunk/Doc/library/subprocess.rst
Modified: python/trunk/Doc/library/subprocess.rst
==============================================================================
--- python/trunk/Doc/library/subprocess.rst (original)
+++ python/trunk/Doc/library/subprocess.rst Mon Aug 4 03:03:50 2008
@@ -193,6 +193,10 @@
Wait for child process to terminate. Set and return :attr:`returncode`
attribute.
+ warning:: This will deadlock if the child process generates enough output
+ to a stdout or stderr pipe causing it to block waiting for the OS's pipe
+ buffer to accept more data.
+
.. method:: Popen.communicate(input=None)
@@ -250,18 +254,30 @@
If the *stdin* argument is ``PIPE``, this attribute is a file object that
provides input to the child process. Otherwise, it is ``None``.
+ warning:: Use :meth:`communicate` rather than .stdin.write() to avoid
+ deadlocks due to any of the other pipe buffers filling up and blocking the
+ child process.
+
.. attribute:: Popen.stdout
If the *stdout* argument is ``PIPE``, this attribute is a file object that
provides output from the child process. Otherwise, it is ``None``.
+ warning:: Use :meth:`communicate` rather than .stdout.read() to avoid
+ deadlocks due to any of the other pipe buffers filling up and blocking the
+ child process.
+
.. attribute:: Popen.stderr
If the *stderr* argument is ``PIPE``, this attribute is file object that
provides error output from the child process. Otherwise, it is ``None``.
+ warning:: Use :meth:`communicate` rather than .stderr.read() to avoid
+ deadlocks due to any of the other pipe buffers filling up and blocking the
+ child process.
+
.. attribute:: Popen.pid
More information about the Python-checkins
mailing list