From 72734ac15451af26a7eac789cfaa3ed61bd002f8 Mon Sep 17 00:00:00 2001 From: ko1 Date: Thu, 7 Jun 2007 12:41:30 +0000 Subject: [PATCH] * thread.c (rb_thread_execute_interrupts): invoke ensure when main thread exits. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12470 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ thread.c | 11 +---------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5f28208dbd..776d39b6c0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu Jun 7 21:38:39 2007 Koichi Sasada + + * thread.c (rb_thread_execute_interrupts): invoke ensure when + main thread exits. + Thu Jun 7 19:02:48 2007 Tanaka Akira * lib/pp.rb: call original "method" method instead of redefined one. diff --git a/thread.c b/thread.c index 763b48ec6b..0b340632d7 100644 --- a/thread.c +++ b/thread.c @@ -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); }