[freenet-cvs] r15044 - trunk/freenet/src/freenet/pluginmanager

toad at freenetproject.org toad at freenetproject.org
Sat Sep 8 15:30:11 UTC 2007


Author: toad
Date: 2007-09-08 15:30:10 +0000 (Sat, 08 Sep 2007)
New Revision: 15044

Modified:
   trunk/freenet/src/freenet/pluginmanager/PluginInfoWrapper.java
   trunk/freenet/src/freenet/pluginmanager/PluginManager.java
Log:
Further simplifications/refactoring.
Beneficial side effect: terminate() now gets called even for threadless plugins (it wasn't being!!)

Modified: trunk/freenet/src/freenet/pluginmanager/PluginInfoWrapper.java
===================================================================
--- trunk/freenet/src/freenet/pluginmanager/PluginInfoWrapper.java	2007-09-08 15:27:14 UTC (rev 15043)
+++ trunk/freenet/src/freenet/pluginmanager/PluginInfoWrapper.java	2007-09-08 15:30:10 UTC (rev 15044)
@@ -81,9 +81,13 @@
 		}
 	}
 	
+	/**
+	 * Tell the plugin to quit. Interrupt it if it's a thread-based plugin which
+	 * might be sleeping. */
 	public void stopPlugin() {
 		plug.terminate();
-		thread.interrupt();
+		if(thread != null)
+			thread.interrupt();
 	}
 	
 	public boolean isPproxyPlugin() {

Modified: trunk/freenet/src/freenet/pluginmanager/PluginManager.java
===================================================================
--- trunk/freenet/src/freenet/pluginmanager/PluginManager.java	2007-09-08 15:27:14 UTC (rev 15043)
+++ trunk/freenet/src/freenet/pluginmanager/PluginManager.java	2007-09-08 15:30:10 UTC (rev 15044)
@@ -290,11 +290,10 @@
 					found = true;
 			}
 		}
-		if (found)
-			if (pi.isThreadlessPlugin())
-				removePlugin(pi);
-			else
-				pi.stopPlugin();
+		if (found) {
+			pi.stopPlugin();
+			removePlugin(pi);
+		}
 	}
 
 




More information about the cvs mailing list