Author: toad
Date: 2008-03-04 18:03:51 +0000 (Tue, 04 Mar 2008)
New Revision: 18362

Modified:
   trunk/freenet/src/freenet/node/KeyTracker.java
Log:
Improve locking slightly

Modified: trunk/freenet/src/freenet/node/KeyTracker.java
===================================================================
--- trunk/freenet/src/freenet/node/KeyTracker.java      2008-03-04 18:03:01 UTC 
(rev 18361)
+++ trunk/freenet/src/freenet/node/KeyTracker.java      2008-03-04 18:03:51 UTC 
(rev 18362)
@@ -1012,8 +1012,11 @@
      * *** Must only be called if the KeyTracker is not to be kept. Otherwise, 
we may receive some packets twice. ***
      */
     public void completelyDeprecated(KeyTracker newTracker) {
-       if(_lastThrottle != null)
-               _lastThrottle.maybeDisconnected();
+       PacketThrottle throttle;
+       synchronized(this) {
+               throttle = _lastThrottle;
+       }
+       if(throttle != null) throttle.maybeDisconnected();
        if(logMINOR) Logger.minor(this, "Completely deprecated: "+this+" in 
favour of "+newTracker);
        LimitedRangeIntByteArrayMapElement[] elements = clear();
        if(elements.length == 0) return; // nothing more to do


Reply via email to