Author: j16sdiz
Date: 2009-04-14 04:42:10 +0000 (Tue, 14 Apr 2009)
New Revision: 26766
Modified:
trunk/freenet/src/freenet/support/RandomGrabArray.java
Log:
Logging (RandomGrabArray.java)
Profiling show this contribute to 10% of all shouldLog calls
Modified: trunk/freenet/src/freenet/support/RandomGrabArray.java
===================================================================
--- trunk/freenet/src/freenet/support/RandomGrabArray.java 2009-04-14
04:41:50 UTC (rev 26765)
+++ trunk/freenet/src/freenet/support/RandomGrabArray.java 2009-04-14
04:42:10 UTC (rev 26766)
@@ -8,7 +8,17 @@
* An array which supports very fast remove-and-return-a-random-element.
*/
public class RandomGrabArray implements RemoveRandom {
-
+ private static volatile boolean logMINOR;
+
+ static {
+ Logger.registerLogThresholdCallback(new LogThresholdCallback() {
+ @Override
+ public void shouldUpdate() {
+ logMINOR = Logger.shouldLog(Logger.MINOR, this);
+ }
+ });
+ }
+
private class Block {
RandomGrabArrayItem[] reqs;
}
@@ -41,7 +51,6 @@
public void add(RandomGrabArrayItem req, ObjectContainer container) {
if(req.persistent() != persistent) throw new
IllegalArgumentException("req.persistent()="+req.persistent()+" but
array.persistent="+persistent+" item="+req+" array="+this);
- boolean logMINOR = Logger.shouldLog(Logger.MINOR, this);
if(req.isEmpty(container)) {
if(logMINOR) Logger.minor(this, "Is finished already:
"+req);
return;
@@ -124,7 +133,6 @@
public RandomGrabArrayItem
removeRandom(RandomGrabArrayItemExclusionList excluding, ObjectContainer
container, ClientContext context) {
RandomGrabArrayItem ret, oret;
- boolean logMINOR = Logger.shouldLog(Logger.MINOR, this);
if(logMINOR) Logger.minor(this, "removeRandom() on "+this+"
index="+index);
synchronized(this) {
int lastActiveBlock = -1;
@@ -359,7 +367,7 @@
}
public void remove(RandomGrabArrayItem it, ObjectContainer container) {
- if(Logger.shouldLog(Logger.MINOR, this))
+ if(logMINOR)
Logger.minor(this, "Removing "+it+" from "+this);
boolean matched = false;
boolean empty = false;
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs