subprocess.Popen and thread module
clp2 at rebertia.com
Wed Aug 10 08:53:29 CEST 2011
> On Tue, Aug 9, 2011 at 11:38 PM, Danny Wong (dannwong)
> <dannwong at cisco.com> wrote:
>> Hi All,
>> I'm trying to execute some external commands from multiple database.
>> I'm using threads and subprocess.Popen ( from docs, all the popen*
>> functions are deprecated and I was told to use subprocess.Popen) to
>> execute the external commands in parallel, but the commands seems to
> What's your Popen() call look like?
On Tue, Aug 9, 2011 at 11:48 PM, Danny Wong (dannwong)
<dannwong at cisco.com> wrote:
> cmd_output = subprocess.Popen(['scm', 'load', '--force', '-r', nickname, '-d', directory, project], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
> status = cmd_output.wait()
Er, did you read the warning about Popen.wait() in the docs? (emphasis added):
Wait for child process to terminate. Set and return returncode attribute.
Warning: ***This will deadlock*** when using stdout=PIPE and/or
stderr=PIPE and the child process generates enough output to a pipe
such that it blocks waiting for the OS pipe buffer to accept more
data. Use communicate() to avoid that.
More information about the Python-list