1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

finalize_deferred doesn't need VM lock

`finalize_list()` acquires VM lock to manipulate objspace state.
This commit is contained in:
Koichi Sasada 2021-12-23 15:45:09 +09:00
parent ca032d5eea
commit 2da53b1468
Notes: git 2021-12-23 16:50:37 +09:00

8
gc.c
View file

@ -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