summaryrefslogtreecommitdiffhomepage
path: root/include/mruby.h
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2015-12-30 14:34:52 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2016-01-02 13:48:45 +0900
commitbd462c5edc170c0e730a154a99cc48e1a6b8e259 (patch)
tree2f0eb20ce2922326232644648b3dbdfe97753213 /include/mruby.h
parent4683b89b84cd5999847e2a9bc3f05a4732cc81a3 (diff)
downloadmruby-bd462c5edc170c0e730a154a99cc48e1a6b8e259.tar.gz
mruby-bd462c5edc170c0e730a154a99cc48e1a6b8e259.zip
mruby-fiber: fiber_switch() to use nesting VM when it's called from C API or mrb_funcall(); close #3056
Diffstat (limited to 'include/mruby.h')
-rw-r--r--include/mruby.h4
1 files changed, 3 insertions, 1 deletions
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);