diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2022-01-19 16:01:45 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2022-01-19 19:57:16 +0900 |
commit | d650b17686d49c2ce8e6a87039861154e93d4621 (patch) | |
tree | d118492480903dfa666ca3c407cc0e6c9698c8aa /eval_intern.h | |
parent | 5c7af72304d0ad33cd3f21b24a4bc44e8acd5b2c (diff) |
`rb_fiber_terminate` must not return [Bug #18497]
In a forked process from a fiber, the fiber becomes the only
fiber, `fiber_switch` does nothing as there is no other fibers,
`rb_fiber_terminate` does not terminate the fiber. In that case,
reaches the end of `fiber_entry` finaly, which is declared as
"COROUTINE" and should never return.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/5468
Diffstat (limited to 'eval_intern.h')
-rw-r--r-- | eval_intern.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/eval_intern.h b/eval_intern.h index 347453f4e8..0efbcb0441 100644 --- a/eval_intern.h +++ b/eval_intern.h @@ -287,7 +287,7 @@ VALUE rb_make_exception(int argc, const VALUE *argv); NORETURN(void rb_method_name_error(VALUE, VALUE)); -void rb_fiber_start(rb_fiber_t*); +NORETURN(void rb_fiber_start(rb_fiber_t*)); NORETURN(void rb_print_undef(VALUE, ID, rb_method_visibility_t)); NORETURN(void rb_print_undef_str(VALUE, VALUE)); |