Author: toad
Date: 2006-11-16 18:23:29 +0000 (Thu, 16 Nov 2006)
New Revision: 10950
Modified:
trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java
Log:
Check for completion every 2 minutes while delaying for congestion control.
Modified: trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java
===================================================================
--- trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java 2006-11-16
17:50:35 UTC (rev 10949)
+++ trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java 2006-11-16
18:23:29 UTC (rev 10950)
@@ -116,6 +116,7 @@
continue;
}
delay(startCycleTime);
+ if(_sendComplete) break;
_sentPackets.setBit(packetNo,
true);
try {
((PeerNode)_destination).sendAsync(DMT.createPacketTransmit(_uid, packetNo,
_sentPackets, _prb.getPacket(packetNo)), null, PACKET_SIZE, _ctr);
@@ -163,7 +164,11 @@
if(now > end) return;
while(now < end) {
long l = end - now;
- int x = (int) (Math.min(l,
Integer.MAX_VALUE));
+ synchronized(_senderThread) {
+ if(_sendComplete) return;
+ }
+ // Check for completion every 2 minutes
+ int x = (int) (Math.min(l, 120*1000));
if(x > 0) {
try {
Thread.sleep(x);