threading, subprocesses and wait

Gal Diskin gal.diskin at gmail.com
Tue Sep 26 10:02:41 EDT 2006


Jean-Paul Calderone wrote:
> On 26 Sep 2006 06:29:17 -0700, Gal Diskin <gal.diskin at gmail.com> wrote:
> >Hi all,
> >I'm writing a python program using threads to open several subprocesses
> >concurrently (using module subprocess) and wait on them. I was
> >wondering if there is a possibilty that a thread will return from wait
> >even though the subprocess that finished was created by another thread
> >thats also waiting.
> >
> >i.e. - 2 threads, each thread opens a subprocess and waits. The
> >subprocess created by thread 1 has ended and thread 2 is released from
> >wait instead of thread 1. Is this scenario possible? (I have reason to
> >believe this has happend to me, but it seems unreasonable behaviour)
>
> From a superficial reading of the code, it looks like this should not
> happen.  The wait call uses waitpid(2) which will only return when the
> specified pid has terminated.
>
> On the other hand, it performs no error handling at all, so if the SIGCHLD
> for thread 1's process is delivered to thread 2, it may cause the wait call
> to fail with an EINTR OSError.  Whether this is actually possible or not
> depends on what signal handlers, if any, have been installed, as well as the
> underlying C and threading libraries, though.
> 
> Jean-Paul

Thanks for the quick answer.




More information about the Python-list mailing list