summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2018-03-02 10:10:16 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2018-03-02 10:14:36 +0900
commit10f28fc82d497233a4d60b0b3e2800cb3a6e2e9c (patch)
tree03e7c32711af0a6c8c7bf882c6bbe7531f3459b4
parenta95b6d34aa41fc288422989010b240877d1e1a4b (diff)
downloadmruby-10f28fc82d497233a4d60b0b3e2800cb3a6e2e9c.tar.gz
mruby-10f28fc82d497233a4d60b0b3e2800cb3a6e2e9c.zip
Add `mrb_fiber_alive_p` to C API.
-rw-r--r--include/mruby.h7
-rw-r--r--mrbgems/mruby-fiber/src/fiber.c5
2 files changed, 10 insertions, 2 deletions
diff --git a/include/mruby.h b/include/mruby.h
index f4d8e229a..ab6b5b3d6 100644
--- a/include/mruby.h
+++ b/include/mruby.h
@@ -1226,6 +1226,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
*
* @mrbgem mruby-fiber
diff --git a/mrbgems/mruby-fiber/src/fiber.c b/mrbgems/mruby-fiber/src/fiber.c
index be9033063..275970291 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)