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;
|
rb_objspace_t *objspace = dmy;
|
||||||
if (ATOMIC_EXCHANGE(finalizing, 1)) return;
|
if (ATOMIC_EXCHANGE(finalizing, 1)) return;
|
||||||
|
|
||||||
RB_VM_LOCK_ENTER();
|
finalize_deferred(objspace);
|
||||||
{
|
ATOMIC_SET(finalizing, 0);
|
||||||
finalize_deferred(objspace);
|
|
||||||
ATOMIC_SET(finalizing, 0);
|
|
||||||
}
|
|
||||||
RB_VM_LOCK_LEAVE();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Loading…
x
Reference in New Issue
Block a user