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