[Updated] D12627: worker: adapt _blockingreader to work around a python3.8.[0-1] bug (issue6444)

mharbison72 (Matt Harbison) phabricator at mercurial-scm.org
Wed May 18 16:36:32 UTC 2022


mharbison72 updated this revision to Diff 33407.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D12627?vs=33406&id=33407

BRANCH
  stable

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D12627/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D12627

AFFECTED FILES
  mercurial/worker.py

CHANGE DETAILS

diff --git a/mercurial/worker.py b/mercurial/worker.py
--- a/mercurial/worker.py
+++ b/mercurial/worker.py
@@ -78,6 +78,23 @@
         # _wrapped.readinto(), since that is unbuffered. The unpickler is fine
         # with just read() and readline(), so we don't need to implement it.
 
+        if (3, 8, 0) <= sys.version_info[:3] < (3, 8, 2):
+
+            # This is required for python 3.8, prior to 3.8.2.  See issue6444.
+            def readinto(self, b):
+                pos = 0
+                size = len(b)
+
+                while pos < size:
+                    ret = self._wrapped.readinto(b[pos:])
+                    if ret is None:
+                        continue  # nonblocking, and no data
+                    elif ret == 0:
+                        break  # 0 -> EOF
+                    pos += ret
+
+                return pos
+
         def readline(self):
             return self._wrapped.readline()
 



To: mharbison72, #hg-reviewers, mjacob
Cc: martinvonz, Alphare, mjacob, mercurial-patches
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurial-scm.org/pipermail/mercurial-patches/attachments/20220518/a39fc12d/attachment-0002.html>


More information about the Mercurial-patches mailing list