From bd462c5edc170c0e730a154a99cc48e1a6b8e259 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Wed, 30 Dec 2015 14:34:52 +0900 Subject: mruby-fiber: fiber_switch() to use nesting VM when it's called from C API or mrb_funcall(); close #3056 --- include/mruby.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/mruby.h b/include/mruby.h index 33af08133..2d8e4857f 100644 --- a/include/mruby.h +++ b/include/mruby.h @@ -87,7 +87,7 @@ typedef struct { enum mrb_fiber_state { MRB_FIBER_CREATED = 0, MRB_FIBER_RUNNING, - MRB_FIBER_RESUMING, + MRB_FIBER_RESUMED, MRB_FIBER_SUSPENDED, MRB_FIBER_TRANSFERRED, MRB_FIBER_TERMINATED, @@ -108,6 +108,7 @@ struct mrb_context { int esize; enum mrb_fiber_state status; + mrb_bool vmexec; struct RFiber *fib; }; @@ -934,6 +935,7 @@ MRB_API mrb_value mrb_top_self(mrb_state *); MRB_API mrb_value mrb_run(mrb_state*, struct RProc*, mrb_value); MRB_API mrb_value mrb_toplevel_run(mrb_state*, struct RProc*); MRB_API mrb_value mrb_context_run(mrb_state*, struct RProc*, mrb_value, unsigned int); +MRB_API mrb_value mrb_vm_exec(mrb_state*, struct RProc*, mrb_code*); MRB_API void mrb_p(mrb_state*, mrb_value); MRB_API mrb_int mrb_obj_id(mrb_value obj); -- cgit v1.2.3