From 10f28fc82d497233a4d60b0b3e2800cb3a6e2e9c Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Fri, 2 Mar 2018 10:10:16 +0900 Subject: [PATCH] Add `mrb_fiber_alive_p` to C API. --- include/mruby.h | 7 +++++++ mrbgems/mruby-fiber/src/fiber.c | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/include/mruby.h b/include/mruby.h index f4d8e229a6..ab6b5b3d6f 100644 --- a/include/mruby.h +++ b/include/mruby.h @@ -1225,6 +1225,13 @@ MRB_API mrb_value mrb_fiber_resume(mrb_state *mrb, mrb_value fib, mrb_int argc, */ MRB_API mrb_value mrb_fiber_yield(mrb_state *mrb, mrb_int argc, const mrb_value *argv); +/* + * Check if a Fiber is alive + * + * @mrbgem mruby-fiber + */ +MRB_API mrb_value mrb_fiber_alive_p(mrb_state *mrb, mrb_value fib); + /* * FiberError reference * diff --git a/mrbgems/mruby-fiber/src/fiber.c b/mrbgems/mruby-fiber/src/fiber.c index be90330635..2759702919 100644 --- a/mrbgems/mruby-fiber/src/fiber.c +++ b/mrbgems/mruby-fiber/src/fiber.c @@ -274,12 +274,13 @@ mrb_fiber_resume(mrb_state *mrb, mrb_value fib, mrb_int len, const mrb_value *a) * Returns true if the fiber can still be resumed. After finishing * execution of the fiber block this method will always return false. */ -static mrb_value -fiber_alive_p(mrb_state *mrb, mrb_value self) +MRB_API mrb_value +mrb_fiber_alive_p(mrb_state *mrb, mrb_value self) { struct mrb_context *c = fiber_check(mrb, self); return mrb_bool_value(c->status != MRB_FIBER_TERMINATED); } +#define fiber_alive_p mrb_fiber_alive_p static mrb_value fiber_eq(mrb_state *mrb, mrb_value self)