summaryrefslogtreecommitdiff
path: root/git/cmd.py
diff options
context:
space:
mode:
authorKostis Anagnostopoulos <ankostis@gmail.com>2016-10-12 22:58:41 +0200
committerKostis Anagnostopoulos <ankostis@gmail.com>2016-10-12 23:10:56 +0200
commite3165753f9d0d69caabac74eee195887f3fea482 (patch)
treeeecdebb729e79a9712a47182a06c0976f10d471c /git/cmd.py
parentc3c170c3e74b8ef90a2c7f47442eabce27411231 (diff)
downloadgitpython-e3165753f9d0d69caabac74eee195887f3fea482.tar.gz
pumps: FIX don't pump when proc has no streams
Diffstat (limited to 'git/cmd.py')
-rw-r--r--git/cmd.py13
1 files changed, 9 insertions, 4 deletions
diff --git a/git/cmd.py b/git/cmd.py
index 88d62aa4..a92b2f3c 100644
--- a/git/cmd.py
+++ b/git/cmd.py
@@ -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)