Author: nextgens
Date: 2008-08-19 23:20:05 +0000 (Tue, 19 Aug 2008)
New Revision: 22045
Modified:
trunk/freenet/src/freenet/node/Announcer.java
Log:
Announcer: reduce locking; it seems to help a lot!
Modified: trunk/freenet/src/freenet/node/Announcer.java
===================================================================
--- trunk/freenet/src/freenet/node/Announcer.java 2008-08-19 21:50:05 UTC
(rev 22044)
+++ trunk/freenet/src/freenet/node/Announcer.java 2008-08-19 23:20:05 UTC
(rev 22045)
@@ -242,7 +242,7 @@
}
private long timeGotEnoughPeers = -1;
-
+ private final Object timeGotEnoughPeersLock = new Object();
private boolean killedAnnouncementTooOld;
/** @return True if we have enough peers that we don't need to
announce. */
@@ -254,7 +254,7 @@
if(opennetCount >= target) {
if(logMINOR)
Logger.minor(this, "We have enough opennet
peers: "+opennetCount+" > "+target+" since
"+(System.currentTimeMillis()-timeGotEnoughPeers)+" ms");
- synchronized(this) {
+ synchronized(timeGotEnoughPeersLock) {
if(timeGotEnoughPeers <= 0)
timeGotEnoughPeers =
System.currentTimeMillis();
}
@@ -278,7 +278,7 @@
}
}
- synchronized(this) {
+ synchronized(timeGotEnoughPeersLock) {
timeGotEnoughPeers = -1;
}
return false;
@@ -288,8 +288,10 @@
* Get the earliest time at which we had enough opennet peers. This is
reset when we drop
* below the threshold.
*/
- synchronized long timeGotEnoughPeers() {
- return timeGotEnoughPeers;
+ long timeGotEnoughPeers() {
+ synchronized(timeGotEnoughPeersLock) {
+ return timeGotEnoughPeers;
+ }
}
private boolean ignoreIPUndetected;