summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/gc.c b/gc.c
index c067ac4745..a5ef670b81 100644
--- a/gc.c
+++ b/gc.c
@@ -8438,7 +8438,15 @@ gc_enter(rb_objspace_t *objspace, enum gc_enter_event event, unsigned int *lock_
{
// stop other ractors
RB_VM_LOCK_ENTER_LEV(lock_lev);
- rb_vm_barrier();
+
+ switch (event) {
+ case gc_enter_event_start:
+ case gc_enter_event_mark_continue:
+ rb_vm_barrier();
+ break;
+ default:
+ break;
+ }
gc_enter_count(event);
GC_ASSERT(during_gc == 0);