Jean-Paul Calderone wrote: > On 26 Sep 2006 06:29:17 -0700, Gal Diskin <[EMAIL PROTECTED]> 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. -- http://mail.python.org/mailman/listinfo/python-list