Author: toad
Date: 2006-07-22 20:48:40 +0000 (Sat, 22 Jul 2006)
New Revision: 9722
Modified:
trunk/freenet/src/freenet/node/PeerNode.java
Log:
doh, now i see ... get the locks right
Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java 2006-07-22 20:35:40 UTC
(rev 9721)
+++ trunk/freenet/src/freenet/node/PeerNode.java 2006-07-22 20:48:40 UTC
(rev 9722)
@@ -1723,22 +1723,25 @@
/**
* Export volatile data about the node as a SimpleFieldSet
*/
- public synchronized SimpleFieldSet exportVolatileFieldSet() {
+ public SimpleFieldSet exportVolatileFieldSet() {
SimpleFieldSet fs = new SimpleFieldSet(true);
long now = System.currentTimeMillis();
- fs.put("averagePingTime", Double.toString(averagePingTime()));
- long idle = now - lastReceivedPacketTime();
- if(idle > (60 * 1000)) { // 1 minute
- fs.put("idle", Long.toString(idle));
+ synchronized(this) {
+ fs.put("averagePingTime",
Double.toString(averagePingTime()));
+ long idle = now - lastReceivedPacketTime();
+ if(idle > (60 * 1000)) { // 1 minute
+ fs.put("idle", Long.toString(idle));
+ }
+ if(peerAddedTime > 1) {
+ fs.put("peerAddedTime",
Long.toString(peerAddedTime));
+ }
}
- fs.put("lastRoutingBackoffReason", lastRoutingBackoffReason);
- long tempPeerAddedTime = getPeerAddedTime();
- if(tempPeerAddedTime > 1) {
- fs.put("peerAddedTime",
Long.toString(tempPeerAddedTime));
+ synchronized(routingBackoffSync) {
+ fs.put("lastRoutingBackoffReason",
lastRoutingBackoffReason);
+ fs.put("routingBackoffPercent",
Double.toString(backedOffPercent.currentValue() * 100));
+ fs.put("routingBackoff",
Long.toString((Math.max(routingBackedOffUntil - now, 0))));
+ fs.put("routingBackoffLength",
Integer.toString(routingBackoffLength));
}
- fs.put("routingBackoffPercent",
Double.toString(backedOffPercent.currentValue() * 100));
- fs.put("routingBackoff",
Long.toString((Math.max(routingBackedOffUntil - now, 0))));
- fs.put("routingBackoffLength",
Integer.toString(routingBackoffLength));
fs.put("status", getPeerNodeStatusString());
return fs;
}