X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=apt_p2p%2Fpolicies.py;h=a8578cb92b85378f4796ee657b223a0952edc9bc;hb=a5dd904be839e2b2896483724d6238b5a970b5de;hp=e7bae81cbcf236741c58d8e977a6d469a4882536;hpb=7b1167d8ce780312d3689c9309c7e9c64060c085;p=quix0rs-apt-p2p.git diff --git a/apt_p2p/policies.py b/apt_p2p/policies.py index e7bae81..a8578cb 100644 --- a/apt_p2p/policies.py +++ b/apt_p2p/policies.py @@ -1,7 +1,3 @@ -# -*- test-case-name: twisted.test.test_policies -*- -# Copyright (c) 2001-2007 Twisted Matrix Laboratories. -# See LICENSE for details. - """ Resource limiting policies. @@ -146,15 +142,17 @@ class ThrottlingProtocol(ProtocolWrapper): self._throttleWrites() def writeSequence(self, seq): + i = 0 if not self.throttled: # Write each sequence separately - while seq and not self.factory.registerWritten(len(seq[0])): - ProtocolWrapper.write(self, seq.pop(0)) + while i < len(seq) and not self.factory.registerWritten(len(seq[i])): + ProtocolWrapper.write(self, seq[i]) + i += 1 # If there's some left, we must have been paused - if seq: - self._tempDataBuffer.extend(seq) - self._tempDataLength += reduce(operator.add, map(len, seq)) + if i < len(seq): + self._tempDataBuffer.extend(seq[i:]) + self._tempDataLength += reduce(operator.add, map(len, seq[i:])) self._throttleWrites() def dataReceived(self, data):