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 /thread.c | |
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
Diffstat (limited to 'thread.c')
-rw-r--r-- | thread.c | 11 |
1 files changed, 1 insertions, 10 deletions
@@ -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); } |