ruby-changes:70452
From: Koichi <ko1@a...>
Date: Thu, 23 Dec 2021 16:50:28 +0900 (JST)
Subject: [ruby-changes:70452] 2da53b1468 (master): `finalize_deferred` doesn't need VM lock
https://git.ruby-lang.org/ruby.git/commit/?id=2da53b1468 From 2da53b14686d07369486bf435c5de932bf26a9fd Mon Sep 17 00:00:00 2001 From: Koichi Sasada <ko1@a...> Date: Thu, 23 Dec 2021 15:45:09 +0900 Subject: `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 2de2b98b784..d77dc2cda4c 100644 --- a/gc.c +++ b/gc.c @@ -4071,12 +4071,8 @@ gc_finalize_deferred(void *dmy) https://github.com/ruby/ruby/blob/trunk/gc.c#L4071 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 -- cgit v1.2.1 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/