[rkward-cvs] SF.net SVN: rkward:[3860] trunk/rkward/rkward/settings/ rksettingsmoduleplugins.cpp

tfry at users.sourceforge.net tfry at users.sourceforge.net
Thu Sep 29 08:55:57 UTC 2011


Revision: 3860
          http://rkward.svn.sourceforge.net/rkward/?rev=3860&view=rev
Author:   tfry
Date:     2011-09-29 08:55:57 +0000 (Thu, 29 Sep 2011)
Log Message:
-----------
fix a race condition

Modified Paths:
--------------
    trunk/rkward/rkward/settings/rksettingsmoduleplugins.cpp

Modified: trunk/rkward/rkward/settings/rksettingsmoduleplugins.cpp
===================================================================
--- trunk/rkward/rkward/settings/rksettingsmoduleplugins.cpp	2011-09-29 08:07:19 UTC (rev 3859)
+++ trunk/rkward/rkward/settings/rksettingsmoduleplugins.cpp	2011-09-29 08:55:57 UTC (rev 3860)
@@ -216,12 +216,14 @@
 		added.append (map);
 	}
 
+	if (force_reload || (!added.isEmpty ())) {
+		// NOTE: Do this *before* showing the dialog, which is modal, i.e. has an event loop. Otherwise, subsequent calls e.g. to rk.call.plugin() could sneak in front of this
+		RKWardMainWindow::getMain ()->initPlugins();
+	}
+
 	if (!added.isEmpty ()) {
 		KMessageBox::informationList (RKWardMainWindow::getMain (), i18n ("New RKWard plugin packs (listed below) have been found, and have been activated, automatically. To de-activate selected plugin packs, use Settings->Configure RKWard->Plugins."), added, i18n ("New plugins found"), "new_plugins_found");
-		force_reload = true;
 	}
-
-	if (force_reload) RKWardMainWindow::getMain ()->initPlugins();
 }
 
 void RKSettingsModulePlugins::fixPluginMapLists () {

This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.





More information about the rkward-tracker mailing list