On Wed, Aug 17, 2005 at 04:20:52AM +0900, Paul van Tilburg wrote: > Hey all, > > I am using ruby1.8 from Debian unstable, which seems to be Ruby 1.8.2 > with some patches from CVS (ruby -v already returns 1.8.3). I am > experiencing some problems with exceptions in Threads since a few > days/weeks. They all seem to be converted to a TypeError, which makes > debugging very hard for the app I am working on.
The example you provided in your bug report (reproduced below for the record) seems to work fine after reverting part of the changes in revision 1.616.2.101 of eval.c: Index: eval.c =================================================================== RCS file: /src/ruby/eval.c,v retrieving revision 1.616.2.117 diff -p -u -r1.616.2.117 eval.c --- eval.c 16 Aug 2005 03:43:11 -0000 1.616.2.117 +++ eval.c 16 Aug 2005 22:38:44 -0000 @@ -1378,8 +1378,9 @@ static int sysexit_status(err) VALUE err; { - VALUE st = rb_iv_get(err, "status"); - return NUM2INT(st); + VALUE st = rb_attr_get(err, rb_intern("status")); + + return NIL_P(st) ? EXIT_FAILURE : NUM2INT(st); } static int @@ -10070,6 +10071,7 @@ rb_thread_switch(n) case RESTORE_EXIT: ruby_errinfo = th_raise_exception; ruby_current_node = th_raise_node; + error_print(); terminate_process(sysexit_status(ruby_errinfo), 0, 0); break; case RESTORE_NORMAL: [EMAIL PROTECTED]:~/src/ruby/ruby1.8$ cat fail.rb Thread.abort_on_exception = true Thread.new { p foo } [EMAIL PROTECTED]:~/src/ruby/ruby1.8$ ./ruby -v fail.rb ruby 1.8.3 (2005-08-16) [i686-linux] fail.rb:2: undefined local variable or method `foo' for main:Object (NameError) from fail.rb:2 -- Mauricio Fernandez -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]