Flush stderr on Windows

While on Linux stderr is unbuffered, it is buffered on Windows. Always
flush stderr on Windows to ensure any error messages appear in the right
order to ease diagnosing.

Change-Id: I37300e384ecd3a51a321a48818f0114d6f3357a0
This commit is contained in:
Sebastian Schuberth 2018-07-13 11:47:10 +02:00
parent b10f0e5b9a
commit a9399846fa

4
repo
View File

@ -144,6 +144,10 @@ def _print(*objects, **kwargs):
out = kwargs.get('file', sys.stdout) out = kwargs.get('file', sys.stdout)
out.write(sep.join(objects) + end) out.write(sep.join(objects) + end)
# On Windows stderr is buffered, so flush to maintain the order of error messages.
if out == sys.stderr and platform.system() == "Windows":
out.flush()
# Python version check # Python version check
ver = sys.version_info ver = sys.version_info