Skip to content

Commit 816b861

Browse files
committed
wbcheck: Use non-barrier vm lock
1 parent 3bb8a83 commit 816b861

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

gc/wbcheck/wbcheck.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -838,7 +838,7 @@ rb_gc_impl_writebarrier(void *objspace_ptr, VALUE a, VALUE b)
838838
{
839839
if (RB_SPECIAL_CONST_P(b)) return;
840840

841-
unsigned int lev = RB_GC_VM_LOCK();
841+
unsigned int lev = RB_GC_VM_LOCK_NO_BARRIER();
842842

843843
rb_wbcheck_objspace_t *objspace = objspace_ptr;
844844

@@ -869,28 +869,28 @@ rb_gc_impl_writebarrier(void *objspace_ptr, VALUE a, VALUE b)
869869
WBCHECK_DEBUG("wbcheck: write barrier skipped (snapshot not initialized) from %p to %p\n", (void *)a, (void *)b);
870870
}
871871

872-
RB_GC_VM_UNLOCK(lev);
872+
RB_GC_VM_UNLOCK_NO_BARRIER(lev);
873873
}
874874

875875
void
876876
rb_gc_impl_writebarrier_unprotect(void *objspace_ptr, VALUE obj)
877877
{
878878
WBCHECK_DEBUG("wbcheck: writebarrier_unprotect called on object %p\n", (void *)obj);
879879

880-
unsigned int lev = RB_GC_VM_LOCK();
880+
unsigned int lev = RB_GC_VM_LOCK_NO_BARRIER();
881881

882882
rb_wbcheck_object_info_t *info = wbcheck_get_object_info(obj);
883883
info->wb_protected = false;
884884

885-
RB_GC_VM_UNLOCK(lev);
885+
RB_GC_VM_UNLOCK_NO_BARRIER(lev);
886886
}
887887

888888
void
889889
rb_gc_impl_writebarrier_remember(void *objspace_ptr, VALUE obj)
890890
{
891891
WBCHECK_DEBUG("wbcheck: writebarrier_remember called on object %p\n", (void *)obj);
892892

893-
unsigned int lev = RB_GC_VM_LOCK();
893+
unsigned int lev = RB_GC_VM_LOCK_NO_BARRIER();
894894

895895
rb_wbcheck_objspace_t *objspace = (rb_wbcheck_objspace_t *)objspace_ptr;
896896
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)
917917
RUBY_ASSERT(!info->gc_mark_snapshot);
918918
RUBY_ASSERT(!info->writebarrier_children);
919919

920-
RB_GC_VM_UNLOCK(lev);
920+
RB_GC_VM_UNLOCK_NO_BARRIER(lev);
921921
}
922922

923923
// Heap walking

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy