Author: nextgens
Date: 2009-01-27 15:13:37 +0000 (Tue, 27 Jan 2009)
New Revision: 25317
Modified:
trunk/freenet/src/freenet/node/NodeStats.java
Log:
cache the results for 60 secs
Modified: trunk/freenet/src/freenet/node/NodeStats.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeStats.java 2009-01-27 15:07:03 UTC
(rev 25316)
+++ trunk/freenet/src/freenet/node/NodeStats.java 2009-01-27 15:13:37 UTC
(rev 25317)
@@ -172,6 +172,8 @@
// ThreadCounting stuffs
public final ThreadGroup rootThreadGroup;
+ private int[] activeThreadsByPriorities = new
int[NativeThread.JAVA_PRIORITY_RANGE];
+ private int[] waitingThreadsByPriorities = new
int[NativeThread.JAVA_PRIORITY_RANGE];
private int threadLimit;
final NodePinger nodePinger;
@@ -202,6 +204,8 @@
ThreadGroup tg = Thread.currentThread().getThreadGroup();
while(tg.getParent() != null) tg = tg.getParent();
this.rootThreadGroup = tg;
+ this.activeThreadsByPriorities = new
int[NativeThread.JAVA_PRIORITY_RANGE];
+ this.waitingThreadsByPriorities = new
int[NativeThread.JAVA_PRIORITY_RANGE];
throttledPacketSendAverage =
new TimeDecayingRunningAverage(1, 10*60*1000 /* should
be significantly longer than a typical transfer */, 0, Long.MAX_VALUE, node);
nodePinger = new NodePinger(node);
@@ -423,6 +427,10 @@
long end = System.currentTimeMillis();
if(logMINOR)
Logger.minor(this, "Throttle
check took "+TimeUtil.formatTime(end-now,2,true));
+
+ // Doesn't belong here... but anyway,
should do the job.
+ activeThreadsByPriorities =
node.executor.runningThreads();
+ waitingThreadsByPriorities =
node.executor.waitingThreads();
}
}
};
@@ -1016,11 +1024,11 @@
}
public int[] getActiveThreadsByPriority() {
- return node.executor.runningThreads();
+ return activeThreadsByPriorities;
}
public int[] getWaitingThreadsByPriority() {
- return node.executor.waitingThreads();
+ return waitingThreadsByPriorities;
}
public int getThreadLimit() {
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs