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);
+ }
}