summaryrefslogtreecommitdiff
path: root/ractor.c
diff options
context:
space:
mode:
Diffstat (limited to 'ractor.c')
-rw-r--r--ractor.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/ractor.c b/ractor.c
index 7996d1c275..bf19aa62d3 100644
--- a/ractor.c
+++ b/ractor.c
@@ -2368,7 +2368,11 @@ obj_traverse_i(VALUE obj, struct obj_traverse_data *data)
.stop = false,
.data = data,
};
- rb_objspace_reachable_objects_from(obj, obj_traverse_reachable_i, &d);
+ RB_VM_LOCK_ENTER_NO_BARRIER();
+ {
+ rb_objspace_reachable_objects_from(obj, obj_traverse_reachable_i, &d);
+ }
+ RB_VM_LOCK_LEAVE_NO_BARRIER();
if (d.stop) return 1;
}
break;
@@ -2678,7 +2682,11 @@ static int
obj_refer_only_shareables_p(VALUE obj)
{
int cnt = 0;
- rb_objspace_reachable_objects_from(obj, obj_refer_only_shareables_p_i, &cnt);
+ RB_VM_LOCK_ENTER_NO_BARRIER();
+ {
+ rb_objspace_reachable_objects_from(obj, obj_refer_only_shareables_p_i, &cnt);
+ }
+ RB_VM_LOCK_LEAVE_NO_BARRIER();
return cnt == 0;
}