diff options
author | Kostis Anagnostopoulos <ankostis@gmail.com> | 2016-10-12 22:58:41 +0200 |
---|---|---|
committer | Kostis Anagnostopoulos <ankostis@gmail.com> | 2016-10-12 23:10:56 +0200 |
commit | e3165753f9d0d69caabac74eee195887f3fea482 (patch) | |
tree | eecdebb729e79a9712a47182a06c0976f10d471c /git/cmd.py | |
parent | c3c170c3e74b8ef90a2c7f47442eabce27411231 (diff) | |
download | gitpython-e3165753f9d0d69caabac74eee195887f3fea482.tar.gz |
pumps: FIX don't pump when proc has no streams
Diffstat (limited to 'git/cmd.py')
-rw-r--r-- | git/cmd.py | 13 |
1 files changed, 9 insertions, 4 deletions
@@ -92,11 +92,16 @@ def handle_process_output(process, stdout_handler, stderr_handler, finalizer, de cmdline = getattr(process, 'args', '') # PY3+ only if not isinstance(cmdline, (tuple, list)): cmdline = cmdline.split() + + pumps = [] + if process.stdout: + pumps.append(('stdout', process.stdout, stdout_handler)) + if process.stderr: + pumps.append(('stderr', process.stderr, stderr_handler)) + threads = [] - for name, stream, handler in ( - ('stdout', process.stdout, stdout_handler), - ('stderr', process.stderr, stderr_handler), - ): + + for name, stream, handler in pumps: t = threading.Thread(target=pump_stream, args=(cmdline, name, stream, decode_streams, handler)) t.setDaemon(True) |