summaryrefslogtreecommitdiff
path: root/cont.c
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2021-02-24 03:37:22 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2021-02-24 04:09:57 +0900
commit9d8c66fd6a3b9ff1c18cdbef88d34379253fb66d (patch)
treee1b9b7c569e2f83e684ed1c1c9487bc215868279 /cont.c
parent75fbea91ac76ad2f2a461443710119166a19b60d (diff)
downloadruby-9d8c66fd6a3b9ff1c18cdbef88d34379253fb66d.tar.gz
rb_fiber_terminate never returns
Diffstat (limited to 'cont.c')
-rw-r--r--cont.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/cont.c b/cont.c
index 72ebf6f6ea..e8ac786031 100644
--- a/cont.c
+++ b/cont.c
@@ -2005,7 +2005,7 @@ rb_fiber_set_scheduler(VALUE klass, VALUE scheduler)
return rb_fiber_scheduler_set(scheduler);
}
-static void rb_fiber_terminate(rb_fiber_t *fiber, int need_interrupt, VALUE err);
+NORETURN(static void rb_fiber_terminate(rb_fiber_t *fiber, int need_interrupt, VALUE err));
void
rb_fiber_start(void)
@@ -2047,7 +2047,8 @@ rb_fiber_start(void)
if (state == TAG_RAISE) {
// noop...
- } else if (state == TAG_FATAL) {
+ }
+ else if (state == TAG_FATAL) {
rb_threadptr_pending_interrupt_enque(th, err);
}
else {