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




Reply via email to