diff -r 667d9c93c412 -r 13d94304c8da mercurial/posix.py --- a/mercurial/posix.py Tue Jan 03 13:25:29 2017 +0100 +++ b/mercurial/posix.py Wed Jan 04 14:52:59 2017 -0500 @@ -607,7 +607,14 @@ In unsupported cases, it will raise a NotImplementedError""" try: - res = select.select(fds, fds, fds) + while True: + try: + res = select.select(fds, fds, fds) + break + except select.error as inst: + if inst.args[0] == errno.EINTR: + continue + raise except ValueError: # out of range file descriptor raise NotImplementedError() return sorted(list(set(sum(res, []))))