Don't check live slot count when multi-Ractor
This commit is contained in:
parent
97449338d6
commit
0a9f771e19
Notes:
git
2024-07-24 13:45:11 +00:00
10
gc/default.c
10
gc/default.c
@ -626,6 +626,7 @@ typedef struct rb_objspace {
|
|||||||
rb_postponed_job_handle_t finalize_deferred_pjob;
|
rb_postponed_job_handle_t finalize_deferred_pjob;
|
||||||
|
|
||||||
unsigned long live_ractor_cache_count;
|
unsigned long live_ractor_cache_count;
|
||||||
|
bool multi_ractor_p;
|
||||||
} rb_objspace_t;
|
} rb_objspace_t;
|
||||||
|
|
||||||
#ifndef HEAP_PAGE_ALIGN_LOG
|
#ifndef HEAP_PAGE_ALIGN_LOG
|
||||||
@ -2609,7 +2610,7 @@ newobj_alloc(rb_objspace_t *objspace, rb_ractor_newobj_cache_t *cache, size_t si
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RUBY_ATOMIC_SIZE_ADD(size_pool->total_allocated_objects, 1);
|
size_pool->total_allocated_objects++;
|
||||||
|
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
@ -5397,7 +5398,8 @@ gc_verify_internal_consistency_(rb_objspace_t *objspace)
|
|||||||
/* check counters */
|
/* check counters */
|
||||||
|
|
||||||
if (!is_lazy_sweeping(objspace) &&
|
if (!is_lazy_sweeping(objspace) &&
|
||||||
!finalizing) {
|
!finalizing &&
|
||||||
|
!objspace->multi_ractor_p) {
|
||||||
if (objspace_live_slots(objspace) != data.live_object_count) {
|
if (objspace_live_slots(objspace) != data.live_object_count) {
|
||||||
fprintf(stderr, "heap_pages_final_slots: %"PRIdSIZE", total_freed_objects: %"PRIdSIZE"\n",
|
fprintf(stderr, "heap_pages_final_slots: %"PRIdSIZE", total_freed_objects: %"PRIdSIZE"\n",
|
||||||
heap_pages_final_slots, total_freed_objects(objspace));
|
heap_pages_final_slots, total_freed_objects(objspace));
|
||||||
@ -6420,6 +6422,10 @@ rb_gc_impl_ractor_cache_alloc(void *objspace_ptr)
|
|||||||
|
|
||||||
objspace->live_ractor_cache_count++;
|
objspace->live_ractor_cache_count++;
|
||||||
|
|
||||||
|
if (objspace->live_ractor_cache_count > 1) {
|
||||||
|
objspace->multi_ractor_p = true;
|
||||||
|
}
|
||||||
|
|
||||||
return calloc1(sizeof(rb_ractor_newobj_cache_t));
|
return calloc1(sizeof(rb_ractor_newobj_cache_t));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user