`finalize_deferred` doesn't need VM lock
`finalize_list()` acquires VM lock to manipulate objspace state.
This commit is contained in:
parent
ca032d5eea
commit
2da53b1468
Notes:
git
2021-12-23 16:50:37 +09:00
8
gc.c
8
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
|
||||
|
|
Loading…
Reference in New Issue