Mercurial > hg > graal-compiler
changeset 15871:11bf5b8973c9
mx: drain all subprocess output to callables before returning from mx.run
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Sat, 24 May 2014 00:23:52 +0200 |
parents | fe608a56e3f7 |
children | b7fc7cdb9005 |
files | mxtool/mx.py |
diffstat | 1 files changed, 5 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mxtool/mx.py Fri May 23 19:36:34 2014 +0200 +++ b/mxtool/mx.py Sat May 24 00:23:52 2014 +0200 @@ -1514,14 +1514,19 @@ stderr = err if not callable(err) else subprocess.PIPE p = subprocess.Popen(args, cwd=cwd, stdout=stdout, stderr=stderr, preexec_fn=preexec_fn, creationflags=creationflags, env=env) sub = _addSubprocess(p, args) + joiners = [] if callable(out): t = Thread(target=redirect, args=(p.stdout, out)) # Don't make the reader thread a daemon otherwise output can be droppped t.start() + joiners.append(t) if callable(err): t = Thread(target=redirect, args=(p.stderr, err)) # Don't make the reader thread a daemon otherwise output can be droppped t.start() + joiners.append(t) + for t in joiners: + t.join() if timeout is None or timeout == 0: retcode = waitOn(p) else: