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