mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
need to call write_barrier on every fiber context switch
This commit is contained in:
@@ -279,7 +279,8 @@ fiber_transfer(mrb_state *mrb, mrb_value self)
|
||||
mrb->c->status = MRB_FIBER_TRANSFERRED;
|
||||
mrb->c = c;
|
||||
c->status = MRB_FIBER_RUNNING;
|
||||
MARK_CONTEXT_MODIFY(c);
|
||||
MARK_CONTEXT_MODIFY(c);
|
||||
mrb_write_barrier(mrb, (struct RBasic*)c->fib);
|
||||
return fiber_result(mrb, a, len);
|
||||
}
|
||||
|
||||
@@ -310,6 +311,7 @@ mrb_fiber_yield(mrb_state *mrb, mrb_int len, const mrb_value *a)
|
||||
mrb->c = c->prev;
|
||||
c->prev = NULL;
|
||||
MARK_CONTEXT_MODIFY(mrb->c);
|
||||
mrb_write_barrier(mrb, (struct RBasic*)c->fib);
|
||||
return fiber_result(mrb, a, len);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user