r27112 - trunk/freenet/src/freenet/client/async

[email protected] Mon, 20 Apr 2009 20:17:45 +0000
Newsgroups gmane.network.freenet.cvs
Message-ID <[email protected]>
Author: toad
Date: 2009-04-20 20:17:45 +0000 (Mon, 20 Apr 2009)
New Revision: 27112

Modified:
   trunk/freenet/src/freenet/client/async/DatastoreChecker.java
Log:
Logging infrastructure


Modified: trunk/freenet/src/freenet/client/async/DatastoreChecker.java
===================================================================
--- trunk/freenet/src/freenet/client/async/DatastoreChecker.java	2009-04-20 20:05:47 UTC (rev 27111)
+++ trunk/freenet/src/freenet/client/async/DatastoreChecker.java	2009-04-20 20:17:45 UTC (rev 27112)
@@ -14,6 +14,7 @@
 import freenet.node.RequestStarter;
 import freenet.node.SendableGet;
 import freenet.support.Executor;
+import freenet.support.LogThresholdCallback;
 import freenet.support.Logger;
 import freenet.support.io.NativeThread;
 
@@ -22,6 +23,18 @@
  */
 public class DatastoreChecker implements PrioRunnable {
 	
+	private static volatile boolean logMINOR;
+	
+	static {
+		Logger.registerLogThresholdCallback(new LogThresholdCallback() {
+			
+			@Override
+			public void shouldUpdate() {
+				logMINOR = Logger.shouldLog(Logger.MINOR, this);
+			}
+		});
+	}
+	
 	static final int MAX_PERSISTENT_KEYS = 1024;
 	
 	/** List of arrays of keys to check for persistent requests. PARTIAL: 
@@ -92,7 +105,6 @@
 	};
 	
     public void loadPersistentRequests(ObjectContainer container, final ClientContext context) {
-		boolean logMINOR = Logger.shouldLog(Logger.MINOR, this);
 		int totalSize = 0;
 		synchronized(this) {
 			for(int i=0;i<persistentKeys.length;i++) {
@@ -220,7 +232,7 @@
 	}
 	
 	public void queueTransientRequest(SendableGet getter, BlockSet blocks) {
-		if(Logger.shouldLog(Logger.MINOR, this)) Logger.minor(this, "Queueing transient request "+getter);
+		if(logMINOR) Logger.minor(this, "Queueing transient request "+getter);
 		Key[] checkKeys = getter.listKeys(null);
 		short prio = getter.getPriorityClass(null);
 		// FIXME check using store.probablyInStore
@@ -290,7 +302,6 @@
 	}
 
 	private void realRun() {
-		boolean logMINOR = Logger.shouldLog(Logger.MINOR, this);
 		Key[] keys = null;
 		SendableGet getter = null;
 		boolean persistent = false;
@@ -329,7 +340,7 @@
 						persistent = false;
 						item = null;
 						blocks = transientBlockSets[prio].remove(0);
-						if(Logger.shouldLog(Logger.MINOR, this))
+						if(logMINOR)
 							Logger.minor(this, "Checking transient request "+getter);
 						break;
 					} else if((!notPersistent) && (!persistentGetters[prio].isEmpty())) {
@@ -394,7 +405,7 @@
 					}
 					if(!container.ext().isStored(get)) {
 						// Completed and deleted already.
-						if(Logger.shouldLog(Logger.MINOR, this)) 
+						if(logMINOR) 
 							Logger.minor(this, "Already deleted from database");
 						container.delete(it);
 						return;