diff --git a/mercurial/worker.py b/mercurial/worker.py --- a/mercurial/worker.py +++ b/mercurial/worker.py @@ -109,8 +109,10 @@ while pos < size: ret = self._wrapped.readinto(view[pos:]) - if not ret: - break + if ret is None: + continue # nonblocking, and no data + elif ret == 0: + break # 0 -> EOF pos += ret del view