@@ -838,7 +838,7 @@ rb_gc_impl_writebarrier(void *objspace_ptr, VALUE a, VALUE b)
838
838
{
839
839
if (RB_SPECIAL_CONST_P (b )) return ;
840
840
841
- unsigned int lev = RB_GC_VM_LOCK ();
841
+ unsigned int lev = RB_GC_VM_LOCK_NO_BARRIER ();
842
842
843
843
rb_wbcheck_objspace_t * objspace = objspace_ptr ;
844
844
@@ -869,28 +869,28 @@ rb_gc_impl_writebarrier(void *objspace_ptr, VALUE a, VALUE b)
869
869
WBCHECK_DEBUG ("wbcheck: write barrier skipped (snapshot not initialized) from %p to %p\n" , (void * )a , (void * )b );
870
870
}
871
871
872
- RB_GC_VM_UNLOCK (lev );
872
+ RB_GC_VM_UNLOCK_NO_BARRIER (lev );
873
873
}
874
874
875
875
void
876
876
rb_gc_impl_writebarrier_unprotect (void * objspace_ptr , VALUE obj )
877
877
{
878
878
WBCHECK_DEBUG ("wbcheck: writebarrier_unprotect called on object %p\n" , (void * )obj );
879
879
880
- unsigned int lev = RB_GC_VM_LOCK ();
880
+ unsigned int lev = RB_GC_VM_LOCK_NO_BARRIER ();
881
881
882
882
rb_wbcheck_object_info_t * info = wbcheck_get_object_info (obj );
883
883
info -> wb_protected = false;
884
884
885
- RB_GC_VM_UNLOCK (lev );
885
+ RB_GC_VM_UNLOCK_NO_BARRIER (lev );
886
886
}
887
887
888
888
void
889
889
rb_gc_impl_writebarrier_remember (void * objspace_ptr , VALUE obj )
890
890
{
891
891
WBCHECK_DEBUG ("wbcheck: writebarrier_remember called on object %p\n" , (void * )obj );
892
892
893
- unsigned int lev = RB_GC_VM_LOCK ();
893
+ unsigned int lev = RB_GC_VM_LOCK_NO_BARRIER ();
894
894
895
895
rb_wbcheck_objspace_t * objspace = (rb_wbcheck_objspace_t * )objspace_ptr ;
896
896
rb_wbcheck_object_info_t * info = wbcheck_get_object_info (obj );
@@ -917,7 +917,7 @@ rb_gc_impl_writebarrier_remember(void *objspace_ptr, VALUE obj)
917
917
RUBY_ASSERT (!info -> gc_mark_snapshot );
918
918
RUBY_ASSERT (!info -> writebarrier_children );
919
919
920
- RB_GC_VM_UNLOCK (lev );
920
+ RB_GC_VM_UNLOCK_NO_BARRIER (lev );
921
921
}
922
922
923
923
// Heap walking
0 commit comments