diff options
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -159,9 +159,6 @@ ruby_cleanup(volatile int ex) rb_thread_t *th = GET_THREAD(); int nerr; - /* protect from thread.raise */ - th->status = THREAD_KILLED; - rb_threadptr_interrupt(th); rb_threadptr_check_signal(th); PUSH_TAG(); @@ -180,6 +177,9 @@ ruby_cleanup(volatile int ex) } POP_TAG(); + /* protect from Thread#raise */ + th->status = THREAD_KILLED; + errs[0] = th->errinfo; PUSH_TAG(); if ((state = EXEC_TAG()) == 0) { |