Author: toad
Date: 2007-09-08 16:05:43 +0000 (Sat, 08 Sep 2007)
New Revision: 15052

Modified:
   trunk/freenet/src/freenet/pluginmanager/PluginInfoWrapper.java
Log:
Synchronize some things that need to be synchronized

Modified: trunk/freenet/src/freenet/pluginmanager/PluginInfoWrapper.java
===================================================================
--- trunk/freenet/src/freenet/pluginmanager/PluginInfoWrapper.java      
2007-09-08 16:05:00 UTC (rev 15051)
+++ trunk/freenet/src/freenet/pluginmanager/PluginInfoWrapper.java      
2007-09-08 16:05:43 UTC (rev 15052)
@@ -90,7 +90,9 @@
        public void stopPlugin(PluginManager manager, int maxWaitTime) {
                unregister(manager);
                plug.terminate();
-               stopping = true;
+               synchronized(this) {
+                       stopping = true;
+               }
                if(thread != null) {
                        thread.interrupt();
                        // Will be removed when the thread exits.
@@ -119,8 +121,10 @@
         * unvisitable immediately, but it may take time for it to shut down 
completely.
         */
        void unregister(PluginManager manager) {
-               if(unregistered) return;
-               unregistered = true;
+               synchronized(this) {
+                       if(unregistered) return;
+                       unregistered = true;
+               }
                manager.unregisterPluginToadlet(this);
        }

@@ -144,7 +148,7 @@
                return isPortForwardPlugin;
        }

-       public boolean isStopping() {
+       public synchronized boolean isStopping() {
                return stopping;
        }
 }


Reply via email to