diff -r 952364b69450 -r 3dc7d29a42e9 tests/run-tests.py --- a/tests/run-tests.py Tue Jul 16 12:44:11 2013 -0500 +++ b/tests/run-tests.py Wed Jul 17 12:45:12 2013 -0700 @@ -59,6 +59,15 @@ import Queue as queue processlock = threading.Lock() +waitlock = threading.Lock() + +def waitlocked(fn): + def run(): + waitlock.acquire() + ret = fn() + waitlock.release() + return ret + return run closefds = os.name == 'posix' def Popen4(cmd, wd, timeout, env=None): @@ -67,6 +76,8 @@ close_fds=closefds, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + p.wait = waitlocked(p.wait) + p.poll = waitlocked(p.poll) processlock.release() p.fromchild = p.stdout @@ -838,11 +849,7 @@ cleanup() raise - try: - ret = proc.wait() - except OSError: - # Py2.4 seems to have a race here - pass + ret = proc.wait() if wifexited(ret): ret = os.WEXITSTATUS(ret)