mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* eval_error.c (error_handle): SystemExit and SignalException throws
TAG_RAISE but not TAG_FATAL. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16652 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
bcb57421cb
commit
1cdd1249e8
2 changed files with 8 additions and 3 deletions
|
@ -1,4 +1,7 @@
|
||||||
Tue May 27 21:53:49 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Tue May 27 22:10:44 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* eval_error.c (error_handle): SystemExit and SignalException throws
|
||||||
|
TAG_RAISE but not TAG_FATAL.
|
||||||
|
|
||||||
* thread.c (rb_thread_execute_interrupts): delay interrupts during
|
* thread.c (rb_thread_execute_interrupts): delay interrupts during
|
||||||
raising exceptions. [ruby-dev:34855]
|
raising exceptions. [ruby-dev:34855]
|
||||||
|
|
|
@ -247,8 +247,7 @@ error_handle(int ex)
|
||||||
error_pos();
|
error_pos();
|
||||||
warn_printf(": unexpected throw\n");
|
warn_printf(": unexpected throw\n");
|
||||||
break;
|
break;
|
||||||
case TAG_RAISE:
|
case TAG_RAISE: {
|
||||||
case TAG_FATAL: {
|
|
||||||
VALUE errinfo = GET_THREAD()->errinfo;
|
VALUE errinfo = GET_THREAD()->errinfo;
|
||||||
if (rb_obj_is_kind_of(errinfo, rb_eSystemExit)) {
|
if (rb_obj_is_kind_of(errinfo, rb_eSystemExit)) {
|
||||||
status = sysexit_status(errinfo);
|
status = sysexit_status(errinfo);
|
||||||
|
@ -261,6 +260,9 @@ error_handle(int ex)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case TAG_FATAL:
|
||||||
|
error_print();
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
rb_bug("Unknown longjmp status %d", ex);
|
rb_bug("Unknown longjmp status %d", ex);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Add table
Reference in a new issue