зеркало из https://github.com/github/ruby.git
* eval.c (rb_thread_switch): convert all exceptions to
SystemExit. fixed: [ruby-core:05724] * eval.c (rb_thread_terminated): show backtrace before propagate exceptions to main thread. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9092 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
8955a2d930
Коммит
17a4e4b1ad
|
@ -1,3 +1,11 @@
|
|||
Wed Sep 7 10:45:15 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* eval.c (rb_thread_switch): convert all exceptions to
|
||||
SystemExit. fixed: [ruby-core:05724]
|
||||
|
||||
* eval.c (rb_thread_terminated): show backtrace before propagate
|
||||
exceptions to main thread.
|
||||
|
||||
Wed Sep 7 09:21:41 2005 Hirokazu Yamamoto <ocean@m2.ccsnet.ne.jp>
|
||||
|
||||
* win32/win32.[hc] (rb_w32_utime): constified.
|
||||
|
|
4
eval.c
4
eval.c
|
@ -10530,6 +10530,9 @@ rb_thread_switch(n)
|
|||
case RESTORE_EXIT:
|
||||
ruby_errinfo = th_raise_exception;
|
||||
ruby_current_node = th_raise_node;
|
||||
if (!rb_obj_is_kind_of(ruby_errinfo, rb_eSystemExit)) {
|
||||
terminate_process(EXIT_FAILURE, ruby_errinfo);
|
||||
}
|
||||
rb_exc_raise(th_raise_exception);
|
||||
break;
|
||||
case RESTORE_NORMAL:
|
||||
|
@ -12170,6 +12173,7 @@ rb_thread_terminated(th, state, status)
|
|||
}
|
||||
else if (th->safe < 4 && (ruby_thread_abort || th->abort || RTEST(ruby_debug))) {
|
||||
/* exit on main_thread */
|
||||
error_print();
|
||||
rb_thread_main_jump(ruby_errinfo, RESTORE_EXIT);
|
||||
}
|
||||
else {
|
||||
|
|
Загрузка…
Ссылка в новой задаче