浏览代码

flush json mode progress stderr output

if borg stderr is not connected to a tty, but to ssh (when using
borg client/server), sys.stderr is block buffered (tty: line buffered).

thus we better flush explicitly after emitting a line as the receiving
side can not handle partial json at the end of the block.

also, it might solve some delays, when output didn't arrive at
receiving side in time.
Thomas Waldmann 7 年之前
父节点
当前提交
2b75b278da
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      src/borg/helpers/progress.py

+ 1 - 1
src/borg/helpers/progress.py

@@ -86,7 +86,7 @@ class ProgressIndicatorBase:
             finished=finished,
             time=time.time(),
         ))
-        print(json.dumps(kwargs), file=sys.stderr)
+        print(json.dumps(kwargs), file=sys.stderr, flush=True)
 
     def finish(self):
         if self.json: