should stop other ractors on transient_heap_evacuate

transient_heap_evacuate() evacuates all living objects from theap
to malloc mangaed memory. This evacuation can run in any ractors
in parallel with other ractor's execution and it is danger.

To stop such danger parallel execution, use rb_vm_barrier() to
stop all other ractors.
This commit is contained in:
Koichi Sasada 2020-11-25 16:14:01 +09:00
parent d43d4acf26
commit 7aaf6676c4
1 changed files with 1 additions and 0 deletions

View File

@ -776,6 +776,7 @@ static void
transient_heap_evacuate(void *dmy)
{
RB_VM_LOCK_ENTER();
rb_vm_barrier();
{
struct transient_heap* theap = transient_heap_get();