[PATCH stable] util: simplify queue management in chunkbuffer
Bryan O'Sullivan
bos at serpentine.com
Tue Jun 5 18:52:53 CDT 2012
# HG changeset patch
# User Bryan O'Sullivan <bryano at fb.com>
# Date 1338940340 25200
# Node ID 9d67cb67adcc2a160a639b9c27d068cb1efd377b
# Parent 92cfde8728ac890f9c47d1f54cce456a30ccca98
util: simplify queue management in chunkbuffer
This also fixes a small wire protocol performance regression.
diff --git a/mercurial/util.py b/mercurial/util.py
--- a/mercurial/util.py
+++ b/mercurial/util.py
@@ -870,14 +870,14 @@
else:
yield chunk
self.iter = splitbig(in_iter)
- self._queue = []
+ self._queue = deque()
def read(self, l):
"""Read L bytes of data from the iterator of chunks of data.
Returns less than L bytes if the iterator runs dry."""
left = l
buf = ''
- queue = deque(self._queue)
+ queue = self._queue
while left > 0:
# refill the queue
if not queue:
@@ -897,7 +897,6 @@
buf += chunk[:left]
else:
buf += chunk
- self._queue = list(queue)
return buf
More information about the Mercurial-devel
mailing list