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]

Reply via email to