summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2018-04-13 23:46:40 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2018-04-13 23:46:40 +0900
commitc6736357a72049a0eb2a31ccabcc3cd2baba7c9e (patch)
treebd793d3b181c42db85b8dce2b9e874aa6972cd32 /src
parente3e87ee26ad7c52eff6bd686d5b1d50234db65ac (diff)
downloadmruby-c6736357a72049a0eb2a31ccabcc3cd2baba7c9e.tar.gz
mruby-c6736357a72049a0eb2a31ccabcc3cd2baba7c9e.zip
No longer need to insert write barriers for fibers.
Those barriers are inserted to fix #3699 but all living fibers are marked from `mark_context()` anyway now.
Diffstat (limited to 'src')
-rw-r--r--src/vm.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/src/vm.c b/src/vm.c
index 1f8e2f05a..9e43d0a4e 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -948,12 +948,7 @@ mrb_vm_run(mrb_state *mrb, struct RProc *proc, mrb_value self, unsigned int stac
if (c->ci - c->cibase > cioff) {
c->ci = c->cibase + cioff;
}
- if (mrb->c != c) {
- if (mrb->c->fib) {
- mrb_write_barrier(mrb, (struct RBasic*)mrb->c->fib);
- }
- mrb->c = c;
- }
+ mrb->c = c;
return result;
}
@@ -1945,9 +1940,6 @@ RETRY_TRY_BLOCK:
while (c->eidx > ci->epos) {
ecall_adjust();
}
- if (c->fib) {
- mrb_write_barrier(mrb, (struct RBasic*)c->fib);
- }
mrb->c->status = MRB_FIBER_TERMINATED;
mrb->c = c->prev;
c->prev = NULL;