diff options
author | Peter Zhu <peter@peterzhu.ca> | 2023-02-22 16:07:21 -0500 |
---|---|---|
committer | Peter Zhu <peter@peterzhu.ca> | 2023-02-22 16:09:05 -0500 |
commit | 29ec8e151bf27c546a4c40d91c039e8d78f8d9c2 (patch) | |
tree | 1da84338e939ef09cf4185bfbeea9401012b66df /gc.c | |
parent | 220cdbeea52c4681fb0ba52d24e5b28a0b877e0f (diff) |
Make GC faster when RGENGC_CHECK_MODE >= 2
We shouldn't run gc_verify_internal_consistency after every GC step
when RGENGC_CHECK_MODE >= 2, only when GC has finished. Running it
on every GC step makes it too slow.
Diffstat (limited to 'gc.c')
-rw-r--r-- | gc.c | 12 |
1 files changed, 4 insertions, 8 deletions
@@ -5951,6 +5951,10 @@ gc_sweep_finish(rb_objspace_t *objspace) gc_event_hook(objspace, RUBY_INTERNAL_EVENT_GC_END_SWEEP, 0); gc_mode_transition(objspace, gc_mode_none); + +#if RGENGC_CHECK_MODE >= 2 + gc_verify_internal_consistency(objspace); +#endif } static int @@ -9765,14 +9769,6 @@ gc_exit(rb_objspace_t *objspace, enum gc_enter_event event, unsigned int *lock_l during_gc = FALSE; RB_VM_LOCK_LEAVE_LEV(lock_lev); - -#if RGENGC_CHECK_MODE >= 2 - if (event == gc_enter_event_continue && gc_mode(objspace) == gc_mode_none) { - GC_ASSERT(!during_gc); - // sweep finished - gc_verify_internal_consistency(objspace); - } -#endif } static void |