Author: toad
Date: 2007-11-29 00:09:21 +0000 (Thu, 29 Nov 2007)
New Revision: 16050

Modified:
   trunk/freenet/src/freenet/node/RequestStarter.java
Log:
Wait before sending

Modified: trunk/freenet/src/freenet/node/RequestStarter.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestStarter.java  2007-11-29 00:05:48 UTC 
(rev 16049)
+++ trunk/freenet/src/freenet/node/RequestStarter.java  2007-11-29 00:09:21 UTC 
(rev 16050)
@@ -82,13 +82,12 @@

        void realRun() {
                SendableRequest req = null;
+               sentRequestTime = System.currentTimeMillis();
                while(true) {
                        boolean logMINOR = Logger.shouldLog(Logger.MINOR, this);
                        if(req == null) req = sched.removeFirst();
                        if(req != null) {
                                if(logMINOR) Logger.minor(this, "Running "+req);
-                               startRequest(req, logMINOR);
-                               sentRequestTime = System.currentTimeMillis();
                                // Wait
                                long delay = throttle.getDelay();
                                if(logMINOR) Logger.minor(this, 
"Delay="+delay+" from "+throttle);
@@ -114,14 +113,17 @@
                                // Nested locks here prevent extra latency when 
there is a race, and therefore allow us to sleep indefinitely
                                synchronized(this) {
                                        req = sched.removeFirst();
-                                       if(req != null) continue;
-                                       try {
-                                               wait(100*1000); // as close to 
indefinite as I'm comfortable with! Toad
-                                       } catch (InterruptedException e) {
-                                               // Ignore
+                                       if(req == null) {
+                                               try {
+                                                       wait(100*1000); // as 
close to indefinite as I'm comfortable with! Toad
+                                               } catch (InterruptedException 
e) {
+                                                       // Ignore
+                                               }
                                        }
                                }
                        }
+                       startRequest(req, logMINOR);
+                       sentRequestTime = System.currentTimeMillis();
                }
        }



Reply via email to