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);


Reply via email to