def readinto(self, buf):
"""Zero-copy read directly into buffer."""
cnt = len(buf)
if cnt > self.remain:
cnt = self.remain
vbuf = memoryview(buf)
res = got = 0
while got < cnt:
res = self.fd.readinto(vbuf[got : cnt])
if not res:
break
if self.crc_check:
self.CRC = crc32(vbuf[got : got + res], self.CRC)
self.remain -= res
got += res
return got
评论列表
文章目录