We currently take the VM lock and signal all other ractors to stop for ZJIT profiling in the interpreter. Max found that costs a lot of time. Lots of the time is spent in rb_gc_disable() as well. We don't need to do any of that, since the minimum we need is to keep away from data race, and we can get that by using stuff in std::sync. This will make ZJIT more ractor friendly.
We currently take the VM lock and signal all other ractors to stop for ZJIT profiling in the interpreter. Max found that costs a lot of time. Lots of the time is spent in rb_gc_disable() as well. We don't need to do any of that, since the minimum we need is to keep away from data race, and we can get that by using stuff in
std::sync. This will make ZJIT more ractor friendly.