[freenet-cvs] r19757 - trunk/freenet/src/freenet/client

j16sdiz at freenetproject.org j16sdiz at freenetproject.org
Mon May 5 12:12:06 UTC 2008


Author: j16sdiz
Date: 2008-05-05 12:12:06 +0000 (Mon, 05 May 2008)
New Revision: 19757

Modified:
   trunk/freenet/src/freenet/client/FECCodec.java
Log:
oomhook: reduce max FECRunner on low memory


Modified: trunk/freenet/src/freenet/client/FECCodec.java
===================================================================
--- trunk/freenet/src/freenet/client/FECCodec.java	2008-05-05 12:11:45 UTC (rev 19756)
+++ trunk/freenet/src/freenet/client/FECCodec.java	2008-05-05 12:12:06 UTC (rev 19757)
@@ -14,6 +14,7 @@
 import freenet.node.PrioRunnable;
 import freenet.support.Executor;
 import freenet.support.Logger;
+import freenet.support.OOMHook;
 import freenet.support.api.Bucket;
 import freenet.support.api.BucketFactory;
 import freenet.support.io.BucketTools;
@@ -27,7 +28,7 @@
  * @author root
  *
  */
-public abstract class FECCodec {
+public abstract class FECCodec implements OOMHook {
 
 	// REDFLAG: Optimal stripe size? Smaller => less memory usage, but more JNI overhead
 
@@ -451,6 +452,20 @@
 		}
 	}
 
+	public void handleLowMemory() throws Exception {
+		synchronized (_awaitingJobs) {
+			maxRunningFECThreads = Math.min(1, maxRunningFECThreads - 1);
+			_awaitingJobs.notify(); // not notifyAll()
+		}
+	}
+
+	public void handleOutOfMemory() throws Exception {
+		synchronized (_awaitingJobs) {
+			maxRunningFECThreads = 1;
+			_awaitingJobs.notifyAll();
+		}
+	}
+
 	/**
 	 * An interface wich has to be implemented by FECJob submitters
 	 * 




More information about the cvs mailing list