[PATCH] set_info functions may not be called from outside the main thread (#873600).

Chris Lumens clumens at redhat.com
Wed Nov 28 20:02:08 UTC 2012


For that matter, no GTK anything may be called from outside the main thread.
Otherwise, all bets are off with the UI.
---
 pyanaconda/ui/gui/spokes/source.py | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/pyanaconda/ui/gui/spokes/source.py b/pyanaconda/ui/gui/spokes/source.py
index 3ac1b1c..0bf99b4 100644
--- a/pyanaconda/ui/gui/spokes/source.py
+++ b/pyanaconda/ui/gui/spokes/source.py
@@ -545,10 +545,9 @@ class SourceSpoke(NormalSpoke):
             communication.send_message(self.__class__.__name__,
                                        _("Failed to set up install source"))
             if not self.data.method.proxy:
-                self.window.set_info(Gtk.MessageType.WARNING, _("Failed to set up install source, check the repo url"))
+                gtk_call_once(self.window.set_info, Gtk.MessageType.WARNING, _("Failed to set up install source, check the repo url"))
             else:
-                self.window.set_info(Gtk.MessageType.WARNING, _("Failed to set up install source, check the repo url and proxy settings"))
-            communication.send_ready(self.__class__.__name__)
+                gtk_call_once(self.window.set_info, Gtk.MessageType.WARNING, _("Failed to set up install source, check the repo url and proxy settings"))
         else:
             self._error = False
             communication.send_message(self.__class__.__name__,
@@ -560,10 +559,11 @@ class SourceSpoke(NormalSpoke):
                                            _(METADATA_ERROR_MESSAGE))
                 communication.send_ready(self.__class__.__name__)
                 self._error = True
-                self.window.set_info(Gtk.MessageType.WARNING, _("Failed to set up install source, check the repo url"))
+                gtk_call_once(self.window.set_info, Gtk.MessageType.WARNING, _("Failed to set up install source, check the repo url"))
             else:
-                communication.send_ready(self.__class__.__name__)
                 communication.send_ready("SoftwareSelectionSpoke")
+        finally:
+            communication.send_ready(self.__class__.__name__)
 
     @property
     def completed(self):
-- 
1.7.11.2



More information about the anaconda-patches mailing list