@@ -35,6 +35,13 @@ enum rb_gc_vm_weak_tables {
35
35
RB_GC_VM_WEAK_TABLE_COUNT
36
36
};
37
37
38
+ #define RB_GC_VM_LOCK () rb_gc_vm_lock(__FILE__, __LINE__)
39
+ #define RB_GC_VM_UNLOCK (lev ) rb_gc_vm_unlock(lev, __FILE__, __LINE__)
40
+ #define RB_GC_CR_LOCK () rb_gc_cr_lock(__FILE__, __LINE__)
41
+ #define RB_GC_CR_UNLOCK (lev ) rb_gc_cr_unlock(lev, __FILE__, __LINE__)
42
+ #define RB_GC_VM_LOCK_NO_BARRIER () rb_gc_vm_lock_no_barrier(__FILE__, __LINE__)
43
+ #define RB_GC_VM_UNLOCK_NO_BARRIER (lev ) rb_gc_vm_unlock_no_barrier(lev, __FILE__, __LINE__)
44
+
38
45
#if USE_MODULAR_GC
39
46
# define MODULAR_GC_FN
40
47
#else
@@ -57,12 +64,12 @@ size_t rb_obj_memsize_of(VALUE obj);
57
64
bool ruby_free_at_exit_p (void );
58
65
void rb_objspace_reachable_objects_from_root (void (func )(const char * category , VALUE , void * ), void * passing_data );
59
66
60
- MODULAR_GC_FN unsigned int rb_gc_vm_lock (void );
61
- MODULAR_GC_FN void rb_gc_vm_unlock (unsigned int lev );
62
- MODULAR_GC_FN unsigned int rb_gc_cr_lock (void );
63
- MODULAR_GC_FN void rb_gc_cr_unlock (unsigned int lev );
64
- MODULAR_GC_FN unsigned int rb_gc_vm_lock_no_barrier (void );
65
- MODULAR_GC_FN void rb_gc_vm_unlock_no_barrier (unsigned int lev );
67
+ MODULAR_GC_FN unsigned int rb_gc_vm_lock (const char * file , int line );
68
+ MODULAR_GC_FN void rb_gc_vm_unlock (unsigned int lev , const char * file , int line );
69
+ MODULAR_GC_FN unsigned int rb_gc_cr_lock (const char * file , int line );
70
+ MODULAR_GC_FN void rb_gc_cr_unlock (unsigned int lev , const char * file , int line );
71
+ MODULAR_GC_FN unsigned int rb_gc_vm_lock_no_barrier (const char * file , int line );
72
+ MODULAR_GC_FN void rb_gc_vm_unlock_no_barrier (unsigned int lev , const char * file , int line );
66
73
MODULAR_GC_FN void rb_gc_vm_barrier (void );
67
74
MODULAR_GC_FN size_t rb_gc_obj_optimal_size (VALUE obj );
68
75
MODULAR_GC_FN void rb_gc_mark_children (void * objspace , VALUE obj );
0 commit comments