From 2da53b14686d07369486bf435c5de932bf26a9fd Mon Sep 17 00:00:00 2001 From: Koichi Sasada Date: Thu, 23 Dec 2021 15:45:09 +0900 Subject: [PATCH] `finalize_deferred` doesn't need VM lock `finalize_list()` acquires VM lock to manipulate objspace state. --- gc.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/gc.c b/gc.c index 2de2b98b78..d77dc2cda4 100644 --- a/gc.c +++ b/gc.c @@ -4071,12 +4071,8 @@ gc_finalize_deferred(void *dmy) rb_objspace_t *objspace = dmy; if (ATOMIC_EXCHANGE(finalizing, 1)) return; - RB_VM_LOCK_ENTER(); - { - finalize_deferred(objspace); - ATOMIC_SET(finalizing, 0); - } - RB_VM_LOCK_LEAVE(); + finalize_deferred(objspace); + ATOMIC_SET(finalizing, 0); } static void