Issue 7177: Unclear warning for subprocess.call (original) (raw)
I wandered across subprocess.call as it was mentioned as a replacement for os.system. The following large warning is attached to it:
Warning Like Popen.wait(), this will deadlock if the child process generates enough output to a stdout or stderr pipe such that it blocks waiting for the OS pipe buffer to accept more data.
This scared my off completely, and I assumed the function was simply broken, as I assumed "stdout pipe" just meant that wherever stdout was sent by default.
I now believe this warning only applies if 'stdout=PIPE', or similar, is used explicitally.
Could this warning be better worded, perhaps adding "if stdout or stderr are explicitly redirected", as in:
Warning Like Popen.wait(), if stdout or stderr are explicitly redirected this will deadlock if the child process generates enough output to a stdout or stderr pipe such that it blocks waiting for the OS pipe buffer to accept more data.