Python deadlocks when Popen in multithread.

INADA Naoki songofacandy at gmail.com
Mon Oct 11 20:57:19 EDT 2010


On Oct 12, 5:33 am, Jed Smith <j... at jedsmith.org> wrote:
> On Mon, Oct 11, 2010 at 4:19 PM, INADA Naoki <songofaca... at gmail.com> wrote:
> > def worker():
> >    p = Popen(["cat"], stdin=PIPE, stdout=PIPE, stderr=STDOUT)
> >    out = p.communicate("hoge")[0]
> >    print "%s %s" % (current_thread().name, out)
>
> If, instead of spawning workers you directly call worker(), does it succeed?

Yes.

> I suspect the threading is a red herring here.

But thread & subprocess is a normal way to invoke outer commands in
parallel.



More information about the Python-list mailing list