Author: zothar
Date: 2006-06-02 11:30:51 +0000 (Fri, 02 Jun 2006)
New Revision: 8980

Modified:
   trunk/freenet/src/freenet/node/DNSRequester.java
   trunk/freenet/src/freenet/node/PacketSender.java
Log:
After toad (thanks toad) helped me realize how silly it was to move the "time 
sensitive" updater to the slow DNSRequester thread in r8962, I've moved it back 
to PacketSender, where PeerNode shouldn't be blocking it with a lock very long 
anyway.  I've also thought of the optimisation I wanted when I put it in 
PacketSender in the first place.

Modified: trunk/freenet/src/freenet/node/DNSRequester.java
===================================================================
--- trunk/freenet/src/freenet/node/DNSRequester.java    2006-06-02 07:44:57 UTC 
(rev 8979)
+++ trunk/freenet/src/freenet/node/DNSRequester.java    2006-06-02 11:30:51 UTC 
(rev 8980)
@@ -52,11 +52,6 @@
         PeerManager pm = node.peers;
         PeerNode[] nodes = pm.myPeers;
         long now = System.currentTimeMillis();
-        // Run the time sensitive status updater separately
-        for(int i=0;i<nodes.length;i++) {
-            PeerNode pn = nodes[i];
-            pn.setPeerNodeStatus(now);
-        }
         if((now - lastLogTime) > 1000) {
             Logger.minor(this, "Processing DNS Requests (log rate-limited)");
             lastLogTime = now;

Modified: trunk/freenet/src/freenet/node/PacketSender.java
===================================================================
--- trunk/freenet/src/freenet/node/PacketSender.java    2006-06-02 07:44:57 UTC 
(rev 8979)
+++ trunk/freenet/src/freenet/node/PacketSender.java    2006-06-02 11:30:51 UTC 
(rev 8980)
@@ -107,6 +107,15 @@
         lastTimeInSeconds = (int) (now / 1000);
         PeerManager pm = node.peers;
         PeerNode[] nodes = pm.myPeers;
+        // Run the time sensitive status updater separately
+        for(int i = 0; i < nodes.length; i++) {
+            PeerNode pn = nodes[i];
+            // Only routing backed off nodes should need status updating since 
everything else
+            // should get updated immediately when it's changed
+            if(pn.getPeerNodeStatus() == 
Node.PEER_NODE_STATUS_ROUTING_BACKED_OFF) {
+                pn.setPeerNodeStatus(now);
+            }
+        }
         node.maybeLogPeerNodeStatusSummary(now);
         long nextActionTime = Long.MAX_VALUE;
         long oldTempNow = now;


Reply via email to