Hello, when I quit the application I''m currently developing there is a lot of messages popping up (see below). I''ve not discovered any problems when running the application, but have I done something wrong? Since ruby 1.9 is much faster I don''t think 1.8 is an option for me anymore. Bj?rn Bergqvist - http://www.discretizer.org 0xb7e91070 /opt/discretizer/ruby/1.9.1-p243/lib/libruby.so.1.9(rb_vm_bugreport+0x60) [0xb7e91070] 0xb7daea81 /opt/discretizer/ruby/1.9.1-p243/lib/libruby.so.1.9 [0xb7daea81] 0xb7daeb1a /opt/discretizer/ruby/1.9.1-p243/lib/libruby.so.1.9(rb_bug+0x3a) [0xb7daeb1a] 0xb7e390fc /opt/discretizer/ruby/1.9.1-p243/lib/libruby.so.1.9 [0xb7e390fc] 0xb7f1240c [0xb7f1240c] 0xb7e3ee72 /opt/discretizer/ruby/1.9.1-p243/lib/libruby.so.1.9(st_lookup+0x22) [0xb7e3ee72] 0xb7e7d9c6 /opt/discretizer/ruby/1.9.1-p243/lib/libruby.so.1.9 [0xb7e7d9c6] 0xb7e7da31 /opt/discretizer/ruby/1.9.1-p243/lib/libruby.so.1.9(rb_get_method_body+0x31) [0xb7e7da31] 0xb7e81f0d /opt/discretizer/ruby/1.9.1-p243/lib/libruby.so.1.9(rb_funcall+0xcd) [0xb7e81f0d] 0xb7720102 /opt/discretizer/ruby/1.9.1-p243/lib/ruby/gems/1.9.1/gems/fxruby-1.6.19/ext/fox16/fox16.so(_Z18FXRbCallVoidMethodPN2FX8FXObjectEm+0x70) [0xb7720102] 0xb762f3eb /opt/discretizer/ruby/1.9.1-p243/lib/ruby/gems/1.9.1/gems/fxruby-1.6.19/ext/fox16/fox16.so(_ZN10FXRbMatrix6recalcEv+0x4d) [0xb762f3eb] 0xb700fe38 /opt/discretizer/fox/1.6.36/lib/libFOX-1.6.so.0(_ZN2FX8FXWindowD2Ev+0x108) [0xb700fe38] 0xb6f3b6cc /opt/discretizer/fox/1.6.36/lib/libFOX-1.6.so.0(_ZN2FX7FXLabelD2Ev+0x8c) [0xb6f3b6cc] 0xb772df1f /opt/discretizer/ruby/1.9.1-p243/lib/ruby/gems/1.9.1/gems/fxruby-1.6.19/ext/fox16/fox16.so(_ZN2FX13FXRadioButtonD2Ev+0x2b) [0xb772df1f] 0xb772e016 /opt/discretizer/ruby/1.9.1-p243/lib/ruby/gems/1.9.1/gems/fxruby-1.6.19/ext/fox16/fox16.so(_ZN15FXRbRadioButtonD0Ev+0x38) [0xb772e016] 0xb76eb6fa /opt/discretizer/ruby/1.9.1-p243/lib/ruby/gems/1.9.1/gems/fxruby-1.6.19/ext/fox16/fox16.so(_ZN10FXRbObject8freefuncEPN2FX8FXObjectE+0xe8) [0xb76eb6fa] 0xb7dbf1aa /opt/discretizer/ruby/1.9.1-p243/lib/libruby.so.1.9 [0xb7dbf1aa] 0xb7dbf334 /opt/discretizer/ruby/1.9.1-p243/lib/libruby.so.1.9 [0xb7dbf334] 0xb7dbf52c /opt/discretizer/ruby/1.9.1-p243/lib/libruby.so.1.9(rb_gc_call_finalizer_at_exit+0x17c) [0xb7dbf52c] 0xb7db0d2e /opt/discretizer/ruby/1.9.1-p243/lib/libruby.so.1.9 [0xb7db0d2e] 0xb7db2076 /opt/discretizer/ruby/1.9.1-p243/lib/libruby.so.1.9(ruby_cleanup+0x116) [0xb7db2076] 0xb7db222e /opt/discretizer/ruby/1.9.1-p243/lib/libruby.so.1.9(ruby_run_node+0x5e) [0xb7db222e] 0x80487c8 /opt/discretizer/ruby/1.9.1-p243/bin/ruby(main+0x68) [0x80487c8] 0xb7b91a36 /lib/libc.so.6(__libc_start_main+0xe6) [0xb7b91a36] 0x80486c1 /opt/discretizer/ruby/1.9.1-p243/bin/ruby [0x80486c1]
On Sep 25, 2009, at 1:00 PM, Bj?rn Bergqvist wrote:> when I quit the application I''m currently developing there is a lot of > messages popping up (see below). I''ve not discovered any problems when > running the application, but have I done something wrong?I don''t think you''re doing anything wrong. It doesn''t seem to happen on every FXRuby app, but I too have seen it crash on exit (from Ruby 1.9.1) in several cases, e.g. http://rubyforge.org/tracker/index.php?func=detail&aid=24073&group_id=300&atid=1223 It''s been awhile since I''ve had time to look into this (or much else FXRuby related), but IIRC the problem boils down to the more or less random way that garbage collection occurs during finalization on exit. While your program''s running, if you (for example) destroy a parent object, FOX will subsequently destroy the child object(s), and the Ruby objects associated with them get cleaned up in an orderly fashion. When the Ruby interpreter is exiting, however, it is possible that the child object will be GC''d before the parent, leaving dangling pointers lying around. I''m not really sure how to fix it at this point.
Fox doesn''t handle accelerators correctly at shutdown and it causes lots of crashes: Try calling this function in a SEL_CLOSE handler for your main window: def initialize ... self.connect(SEL_CLOSE, method(:cleanup_menu_panes)) end def cleanup_menu_panes |sender, sel, data| ObjectSpace.each_object(FXMenuPane) do |object| children = [] object.each_child do |child| children << child end children.each do |child| object.removeChild(child) end end 0 end -----Original Message----- From: fxruby-users-bounces at rubyforge.org [mailto:fxruby-users-bounces at rubyforge.org] On Behalf Of James Johnson Sent: Friday, September 25, 2009 12:52 PM To: fxruby-users at rubyforge.org Subject: Re: [fxruby-users] no clean exit On Sep 25, 2009, at 1:00 PM, Bj?rn Bergqvist wrote:> when I quit the application I''m currently developing there is a lot of > messages popping up (see below). I''ve not discovered any problems when > running the application, but have I done something wrong?I don''t think you''re doing anything wrong. It doesn''t seem to happen on every FXRuby app, but I too have seen it crash on exit (from Ruby 1.9.1) in several cases, e.g. http://rubyforge.org/tracker/index.php?func=detail&aid=24073&group_id=300&atid=1223 It''s been awhile since I''ve had time to look into this (or much else FXRuby related), but IIRC the problem boils down to the more or less random way that garbage collection occurs during finalization on exit. While your program''s running, if you (for example) destroy a parent object, FOX will subsequently destroy the child object(s), and the Ruby objects associated with them get cleaned up in an orderly fashion. When the Ruby interpreter is exiting, however, it is possible that the child object will be GC''d before the parent, leaving dangling pointers lying around. I''m not really sure how to fix it at this point. _______________________________________________ fxruby-users mailing list fxruby-users at rubyforge.org http://rubyforge.org/mailman/listinfo/fxruby-users This message and any enclosures are intended only for the addressee. Please notify the sender by email if you are not the intended recipient. If you are not the intended recipient, you may not use, copy, disclose, or distribute this message or its contents or enclosures to any other person and any such actions may be unlawful. Ball reserves the right to monitor and review all messages and enclosures sent to or from this email address.
Hello, I just thought about it and found a quick way of "solving" the problem. I just pipe the errors to a file and look at the first rows of that file: ruby application.rb 2> err.txt; head -n 10 err.txt Works for me. Thanks for the help anyway. Regards Bj?rn Bergqvist 2009/9/25 Melton, Ryan <rmelton at ball.com>:> Fox doesn''t handle accelerators correctly at shutdown and it causes lots of crashes: > > Try calling this function in a SEL_CLOSE handler for your main window: > > ?def initialize > ? ?... > ? ?self.connect(SEL_CLOSE, method(:cleanup_menu_panes)) > ?end > > ?def cleanup_menu_panes |sender, sel, data| > ? ?ObjectSpace.each_object(FXMenuPane) do |object| > ? ? ?children = [] > ? ? ?object.each_child do |child| > ? ? ? ?children << child > ? ? ?end > ? ? ?children.each do |child| > ? ? ? ?object.removeChild(child) > ? ? ?end > ? ?end > ? ?0 > ?end > > -----Original Message----- > From: fxruby-users-bounces at rubyforge.org [mailto:fxruby-users-bounces at rubyforge.org] On Behalf Of James Johnson > Sent: Friday, September 25, 2009 12:52 PM > To: fxruby-users at rubyforge.org > Subject: Re: [fxruby-users] no clean exit > > > On Sep 25, 2009, at 1:00 PM, Bj?rn Bergqvist wrote: > >> when I quit the application I''m currently developing there is a lot of >> messages popping up (see below). I''ve not discovered any problems when >> running the application, but have I done something wrong? > > I don''t think you''re doing anything wrong. It doesn''t seem to happen on every FXRuby app, but I too have seen it crash on exit (from Ruby > 1.9.1) in several cases, e.g. > > ? ? ? ?http://rubyforge.org/tracker/index.php?func=detail&aid=24073&group_id=300&atid=1223 > > It''s been awhile since I''ve had time to look into this (or much else FXRuby related), but IIRC the problem boils down to the more or less random way that garbage collection occurs during finalization on exit. > While your program''s running, if you (for example) destroy a parent object, FOX will subsequently destroy the child object(s), and the Ruby objects associated with them get cleaned up in an orderly fashion. When the Ruby interpreter is exiting, however, it is possible that the child object will be GC''d before the parent, leaving dangling pointers lying around. I''m not really sure how to fix it at this point. > _______________________________________________ > fxruby-users mailing list > fxruby-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/fxruby-users > > > > This message and any enclosures are intended only for the addressee. ?Please > notify the sender by email if you are not the intended recipient. ?If you are > not the intended recipient, you may not use, copy, disclose, or distribute this > message or its contents or enclosures to any other person and any such actions > may be unlawful. ?Ball reserves the right to monitor and review all messages > and enclosures sent to or from this email address. > _______________________________________________ > fxruby-users mailing list > fxruby-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/fxruby-users >