diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | thread.c | 11 |
2 files changed, 6 insertions, 10 deletions
@@ -1,3 +1,8 @@ +Thu Jun 7 21:38:39 2007 Koichi Sasada <ko1@atdot.net> + + * thread.c (rb_thread_execute_interrupts): invoke ensure when + main thread exits. + Thu Jun 7 19:02:48 2007 Tanaka Akira <akr@fsij.org> * lib/pp.rb: call original "method" method instead of redefined one. @@ -700,16 +700,7 @@ rb_thread_execute_interrupts(rb_thread_t *th) th->thrown_errinfo = 0; thread_debug("rb_thread_execute_interrupts: %ld\n", err); - if (err == eKillSignal) { - th->errinfo = INT2FIX(TAG_FATAL); - TH_JUMP_TAG(th, TAG_FATAL); - } - else if (err == eTerminateSignal) { - /* rewind to toplevel stack */ - while (th->tag->prev) { - th->tag = th->tag->prev; - } - + if (err == eKillSignal || err == eTerminateSignal) { th->errinfo = INT2FIX(TAG_FATAL); TH_JUMP_TAG(th, TAG_FATAL); } |