** Description changed: Binary package hint: libgtk2-ruby In Ubuntu 9.10 with the version of libgtk2-ruby from the repositories (0.19.0), new threads cause the Gtk main loop to freeze. As an example, the following code will never produce any output: ===== Impact ===== I don't know which program available directly within Ubuntu is written in Ruby-GTK+, but those which do and which are using the Ruby Thread class are broken, and of course developing such a program is broken too. The fix is available in ruby-gnome2 since version 0.19.2 and was introduced through SVN revisions 3692[1] and 3694[2]. Both are within the attachment "ruby-gnome2-gtk-thread-patch.debdiff" in comment #1. [1] http://ruby-gnome2.svn.sourceforge.net/viewvc/ruby-gnome2?view=rev&revision=3692 [2] http://ruby-gnome2.svn.sourceforge.net/viewvc/ruby-gnome2?view=rev&revision=3694 TEST CASE: require 'gtk2' Thread.new do sleep 1 # Look busy exit # Finished, exit end # Main loop loop do # Process all currently pending events Gtk.main_iteration while Gtk.events_pending? print '.' end However, when the latest version of the bindings is installed (0.19.3) the program works as expected, filling the screen with dots. TEST CASE 2: Here is another example for reproducing this bug: require "gtk2" include Gtk, GLib # Create widgets window = Window.new vbox = VBox.new(false, 2) button = Button.new("Run Thread") progress = ProgressBar.new # Pack widgets window.add(vbox) vbox.add(button) vbox.add(progress) # Set default window size window.default_width = 120 window.default_height = 50 window.show_all # Connect signals button.signal_connect("clicked") do Thread.new do puts "Thread started!" progress.pulse end end window.signal_connect("destroy") { main_quit } # Show all and run main # start the GTK+ main loop The test program shows a window with a button and a progress bar. Clicking the button will execute a Ruby Thread object, and the GUI visual elements/the GTK+ main loop will remain freezed. + REGRESSION: + The following applications use libgtk2-ruby and threads: fantasdic-1.0beta7 geekast-0.1.3 kazehakase-0.5.8 mhc-0.25.1+20090120 rbbr-0.6.0 xnetcardconfig-0.2.1 - The example in the bug description is supposed to print dots, and instead it doesn't. + The example in the bug description is supposed to print dots, and + instead it doesn't. This problem is also reported at: http://sourceforge.net/mailarchive/forum.php?thread_name=dc3bf8581001120746kb5da118udd0a74439cc4dcd9%40mail.gmail.com&forum_name=ruby-gnome2-devel-en
-- Multithreaded Gtk applications using Ruby bindings freeze https://bugs.launchpad.net/bugs/514899 You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs