diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-06-07 12:41:30 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-06-07 12:41:30 +0000 |
commit | 72734ac15451af26a7eac789cfaa3ed61bd002f8 (patch) | |
tree | c3c8f08411fb61f17778da05830385a1e421d256 | |
parent | 6f9ded1fb0cba5c14f83f0610c864e7f59d0c827 (diff) | |
download | ruby-72734ac15451af26a7eac789cfaa3ed61bd002f8.tar.gz |
* 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
-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); } |