mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* thread.c: Revert changes to Thread#raise made in r25278 [ruby-core:25367]
* eval_intern.h: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25316 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
bc59a85740
commit
a77a9bb20c
3 changed files with 2 additions and 13 deletions
2
eval.c
2
eval.c
|
@ -1004,7 +1004,7 @@ rb_rubylevel_errinfo(void)
|
||||||
return get_errinfo();
|
return get_errinfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
VALUE
|
static VALUE
|
||||||
rb_threadptr_errinfo(rb_thread_t *th)
|
rb_threadptr_errinfo(rb_thread_t *th)
|
||||||
{
|
{
|
||||||
return get_thread_errinfo(th);
|
return get_thread_errinfo(th);
|
||||||
|
|
|
@ -212,7 +212,6 @@ void rb_thread_terminate_all(void);
|
||||||
VALUE rb_vm_top_self();
|
VALUE rb_vm_top_self();
|
||||||
VALUE rb_vm_cbase(void);
|
VALUE rb_vm_cbase(void);
|
||||||
void rb_trap_restore_mask(void);
|
void rb_trap_restore_mask(void);
|
||||||
VALUE rb_threadptr_errinfo(rb_thread_t *);
|
|
||||||
|
|
||||||
#ifndef CharNext /* defined as CharNext[AW] on Windows. */
|
#ifndef CharNext /* defined as CharNext[AW] on Windows. */
|
||||||
#define CharNext(p) ((p) + mblen(p, RUBY_MBCHAR_MAXSIZE))
|
#define CharNext(p) ((p) + mblen(p, RUBY_MBCHAR_MAXSIZE))
|
||||||
|
|
12
thread.c
12
thread.c
|
@ -76,7 +76,6 @@ void rb_thread_stop_timer_thread(void);
|
||||||
|
|
||||||
static const VALUE eKillSignal = INT2FIX(0);
|
static const VALUE eKillSignal = INT2FIX(0);
|
||||||
static const VALUE eTerminateSignal = INT2FIX(1);
|
static const VALUE eTerminateSignal = INT2FIX(1);
|
||||||
static const VALUE eReRaiseSignal = INT2FIX(2);
|
|
||||||
static volatile int system_working = 1;
|
static volatile int system_working = 1;
|
||||||
|
|
||||||
inline static void
|
inline static void
|
||||||
|
@ -1247,10 +1246,6 @@ rb_threadptr_execute_interrupts_rec(rb_thread_t *th, int sched_depth)
|
||||||
TH_JUMP_TAG(th, TAG_FATAL);
|
TH_JUMP_TAG(th, TAG_FATAL);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (err == eReRaiseSignal) {
|
|
||||||
err = rb_threadptr_errinfo(th);
|
|
||||||
err = rb_make_exception(NIL_P(err) ? 0 : 1, &err);
|
|
||||||
}
|
|
||||||
rb_exc_raise(err);
|
rb_exc_raise(err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1317,12 +1312,7 @@ rb_threadptr_raise(rb_thread_t *th, int argc, VALUE *argv)
|
||||||
goto again;
|
goto again;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (argc == 0) {
|
exc = rb_make_exception(argc, argv);
|
||||||
exc = eReRaiseSignal;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
exc = rb_make_exception(argc, argv);
|
|
||||||
}
|
|
||||||
th->thrown_errinfo = exc;
|
th->thrown_errinfo = exc;
|
||||||
rb_threadptr_ready(th);
|
rb_threadptr_ready(th);
|
||||||
return Qnil;
|
return Qnil;
|
||||||
|
|
Loading…
Reference in a new issue