Project

General

Profile

« Previous | Next » 

Revision b93e16dc

Added by ko1 (Koichi Sasada) almost 5 years ago

enable constant cache on ractors

constant cache IC is accessed by non-atomic manner and there are
thread-safety issues, so Ruby 3.0 disables to use const cache on
non-main ractors.

This patch enables it by introducing imemo_constcache and allocates
it by every re-fill of const cache like imemo_callcache.
[Bug #17510]

Now IC only has one entry IC::entry and it points to
iseq_inline_constant_cache_entry, managed by T_IMEMO object.

IC is atomic data structure so rb_mjit_before_vm_ic_update() and
rb_mjit_after_vm_ic_update() is not needed.