Author: nextgens
Date: 2008-08-17 09:35:17 +0000 (Sun, 17 Aug 2008)
New Revision: 21946

Modified:
   trunk/freenet/src/freenet/node/KeyTracker.java
Log:
reduce locking on KeyTracker (review needed for this one too)

Modified: trunk/freenet/src/freenet/node/KeyTracker.java
===================================================================
--- trunk/freenet/src/freenet/node/KeyTracker.java      2008-08-17 08:45:48 UTC 
(rev 21945)
+++ trunk/freenet/src/freenet/node/KeyTracker.java      2008-08-17 09:35:17 UTC 
(rev 21946)
@@ -42,7 +42,7 @@
     public final PeerNode pn;
     
     /** Are we the secondary key? */
-    private boolean isDeprecated;
+    private volatile boolean isDeprecated;
     
     /** Cipher to both encrypt outgoing packets with and decrypt
      * incoming ones. */
@@ -150,6 +150,7 @@
     }
     
     /** toString() - don't leak the key unless asked to */
+       @Override
     public String toString() {
         return super.toString()+" for "+pn.shortToString();
     }
@@ -190,6 +191,7 @@
          * and can trigger an otherwise empty packet to be sent. */
         long urgentTime;
         
+               @Override
         public String toString() {
             return super.toString()+": packet "+packetNumber+" 
urgent@"+urgentTime+ '(' +(System.currentTimeMillis()-urgentTime)+ ')';
         }
@@ -305,6 +307,7 @@
             super(packetNumber);
         }
         
+               @Override
         void sent() throws UpdatableSortedLinkedListKilledException {
             synchronized(resendRequestQueue) {
                 super.sent();
@@ -337,6 +340,7 @@
             }
         }
         
+               @Override
         void sent() throws UpdatableSortedLinkedListKilledException {
             synchronized(ackRequestQueue) {
                 super.sent();
@@ -405,7 +409,7 @@
      * @throws UpdatableSortedLinkedListKilledException 
      */
     private void removeResendRequest(int seqNumber) throws 
UpdatableSortedLinkedListKilledException {
-       resendRequestQueue.removeByKey(new Integer(seqNumber));
+       resendRequestQueue.removeByKey(seqNumber);
     }
 
     /**
@@ -588,7 +592,6 @@
             }
             pn.node.ps.wakeUp();
         } else {
-               synchronized(this) {
                        String msg = "Asking me to resend packet "+seqNumber+
                                " which we haven't sent yet or which they have 
already acked (next="+nextPacketNumber+ ')';
                        // Might just be late, but could indicate something 
serious.
@@ -598,7 +601,6 @@
                        } else {
                                Logger.normal(this, msg);
                        }
-               }
         }
     }
 
@@ -650,17 +652,19 @@
      * This is normal if we are the secondary key.
      * @param seqNumber The packet number lost.
      */
-    public synchronized void destForgotPacket(int seqNumber) {
+    public void destForgotPacket(int seqNumber) {
         if(isDeprecated) {
             Logger.normal(this, "Destination forgot packet: "+seqNumber);
         } else {
             Logger.error(this, "Destination forgot packet: "+seqNumber);
         }
+       synchronized(this) {
         try {
                        removeResendRequest(seqNumber);
                } catch (UpdatableSortedLinkedListKilledException e) {
                        // Ignore
                }
+       }
     }
 
     /**

_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to