diff -r c463f45fa114 -r ee4537e365c8 mercurial/progress.py --- a/mercurial/progress.py Tue May 31 03:39:42 2022 +0200 +++ b/mercurial/progress.py Tue May 31 04:11:34 2022 +0200 @@ -6,7 +6,6 @@ # GNU General Public License version 2 or any later version. -import errno import threading import time @@ -65,25 +64,6 @@ return _(b"%dy%02dw") % (years, weeks) -# file_write() and file_flush() of Python 2 do not restart on EINTR if -# the file is attached to a "slow" device (e.g. a terminal) and raise -# IOError. We cannot know how many bytes would be written by file_write(), -# but a progress text is known to be short enough to be written by a -# single write() syscall, so we can just retry file_write() with the whole -# text. (issue5532) -# -# This should be a short-term workaround. We'll need to fix every occurrence -# of write() to a terminal or pipe. -def _eintrretry(func, *args): - while True: - try: - return func(*args) - except IOError as err: - if err.errno == errno.EINTR: - continue - raise - - class progbar: def __init__(self, ui): self.ui = ui @@ -207,10 +187,10 @@ self._flusherr() def _flusherr(self): - _eintrretry(self.ui.ferr.flush) + self.ui.ferr.flush() def _writeerr(self, msg): - _eintrretry(self.ui.ferr.write, msg) + self.ui.ferr.write(msg) def width(self): tw = self.ui.termwidth()