Poll if process is still alive in Test.py

In some cases this script did not detect properly that the subprocess is already terminated. The "append" loop afterwards caused memory to fill up and the script to fail eventually.
This commit is contained in:
MarkusTeufelberger
2017-12-02 21:59:39 +01:00
committed by Nikolaos D. Bougalis
parent 0c4f0fdd01
commit 593a53253c

View File

@@ -264,17 +264,20 @@ def shell(cmd, args=(), silent=False):
count = 0
# readline returns '' at EOF
for line in iter(process.stdout.readline, ''):
decoded = decodeString(line)
lines.append(decoded)
if verbose:
print(decoded, end='')
elif not silent:
count += 1
if count >= 80:
print()
count = 0
else:
print('.', end='')
if process.poll() is None:
decoded = decodeString(line)
lines.append(decoded)
if verbose:
print(decoded, end='')
elif not silent:
count += 1
if count >= 80:
print()
count = 0
else:
print('.', end='')
else:
break
if not verbose and count:
print()