mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 07:17:55 +03:00
util: simplify queue management in chunkbuffer
This also fixes a small wire protocol performance regression.
This commit is contained in:
parent
3bd79faaba
commit
1de6d211c8
@ -870,14 +870,14 @@ class chunkbuffer(object):
|
||||
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 @@ class chunkbuffer(object):
|
||||
buf += chunk[:left]
|
||||
else:
|
||||
buf += chunk
|
||||
self._queue = list(queue)
|
||||
|
||||
return buf
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user