D476: util: add an mmapread method
mbthomas (Mark Thomas)
phabricator at mercurial-scm.org
Wed Sep 13 13:22:30 EDT 2017
mbthomas updated this revision to Diff 1785.
mbthomas added a comment.
Accept both file objects and fds
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D476?vs=1157&id=1785
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D476
AFFECTED FILES
mercurial/util.py
CHANGE DETAILS
diff --git a/mercurial/util.py b/mercurial/util.py
--- a/mercurial/util.py
+++ b/mercurial/util.py
@@ -26,6 +26,7 @@
import gc
import hashlib
import imp
+import mmap
import os
import platform as pyplatform
import re as remod
@@ -407,6 +408,13 @@
self._lenbuf += len(data)
self._buffer.append(data)
+def mmapread(fp):
+ try:
+ fd = getattr(fp, 'fileno', lambda: fp)()
+ return mmap.mmap(fd, 0, access=mmap.ACCESS_READ)
+ except ValueError: # cannot mmap an empty file
+ return ''
+
def popen2(cmd, env=None, newlines=False):
# Setting bufsize to -1 lets the system decide the buffer size.
# The default for bufsize is 0, meaning unbuffered. This leads to
To: mbthomas, #fbhgext, #hg-reviewers, quark
Cc: quark, indygreg, simonfar, mercurial-devel
More information about the Mercurial-devel
mailing list