diff options
| -rw-r--r-- | mrbgems/mruby-fiber/src/fiber.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/mrbgems/mruby-fiber/src/fiber.c b/mrbgems/mruby-fiber/src/fiber.c index 6823ebe2a..824a564f6 100644 --- a/mrbgems/mruby-fiber/src/fiber.c +++ b/mrbgems/mruby-fiber/src/fiber.c @@ -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); } |
