[pypy-commit] pypy py3k: Remove file, probably added during a merge by mistake

arigo pypy.commits at gmail.com
Fri Aug 26 07:32:15 EDT 2016


Author: Armin Rigo <arigo at tunes.org>
Branch: py3k
Changeset: r86550:3b5504537968
Date: 2016-08-26 13:31 +0200
http://bitbucket.org/pypy/pypy/changeset/3b5504537968/

Log:	Remove file, probably added during a merge by mistake

diff --git a/pypy/module/_file/readinto.py b/pypy/module/_file/readinto.py
deleted file mode 100644
--- a/pypy/module/_file/readinto.py
+++ /dev/null
@@ -1,82 +0,0 @@
-import sys, errno
-from rpython.rlib import rposix
-from rpython.rlib.objectmodel import keepalive_until_here
-from rpython.rtyper.lltypesystem import lltype, rffi
-from pypy.module._file.interp_file import is_wouldblock_error, signal_checker
-
-_WIN32 = sys.platform.startswith('win')
-UNDERSCORE_ON_WIN32 = '_' if _WIN32 else ''
-
-os_read = rffi.llexternal(UNDERSCORE_ON_WIN32 + 'read',
-                          [rffi.INT, rffi.CCHARP, rffi.SIZE_T],
-                          rffi.SSIZE_T, save_err=rffi.RFFI_SAVE_ERRNO)
-
-
-def direct_readinto(self, w_rwbuffer):
-    rwbuffer = self.space.writebuf_w(w_rwbuffer)
-    stream = self.getstream()
-    size = rwbuffer.getlength()
-    target_address = lltype.nullptr(rffi.CCHARP.TO)
-    fd = -1
-    target_pos = 0
-
-    if size > 64:
-        try:
-            target_address = rwbuffer.get_raw_address()
-        except ValueError:
-            pass
-        else:
-            fd = stream.try_to_find_file_descriptor()
-
-    if fd < 0 or not target_address:
-        # fall-back
-        MAX_PART = 1024 * 1024    # 1 MB
-        while size > MAX_PART:
-            data = self.direct_read(MAX_PART)
-            rwbuffer.setslice(target_pos, data)
-            target_pos += len(data)
-            size -= len(data)
-            if len(data) != MAX_PART:
-                break
-        else:
-            data = self.direct_read(size)
-            rwbuffer.setslice(target_pos, data)
-            target_pos += len(data)
-
-    else:
-        # optimized case: reading more than 64 bytes into a rwbuffer
-        # with a valid raw address
-        self.check_readable()
-
-        # first "read" the part that is already sitting in buffers, if any
-        initial_size = min(size, stream.count_buffered_bytes())
-        if initial_size > 0:
-            data = stream.read(initial_size)
-            rwbuffer.setslice(target_pos, data)
-            target_pos += len(data)
-            size -= len(data)
-
-        # then call os_read() to get the rest
-        if size > 0:
-            stream.flush()
-            while True:
-                got = os_read(fd, rffi.ptradd(target_address, target_pos), size)
-                got = rffi.cast(lltype.Signed, got)
-                if got > 0:
-                    target_pos += got
-                    size -= got
-                    if size <= 0:
-                        break
-                elif got == 0:
-                    break
-                else:
-                    err = rposix.get_saved_errno()
-                    if err == errno.EINTR:
-                        signal_checker(self.space)()
-                        continue
-                    if is_wouldblock_error(err) and target_pos > 0:
-                        break
-                    raise OSError(err, "read error")
-            keepalive_until_here(rwbuffer)
-
-    return self.space.wrap(target_pos)


More information about the pypy-commit mailing list