1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/ext/objspace
Koichi Sasada e7fc353f04 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.
2021-01-05 02:27:58 +09:00
..
lib Fix ObjectSpace.dump(obj, output: :stdout) 2020-10-03 00:00:01 +09:00
depend Expose atomic operation macros with RUBY prefix 2020-12-24 11:43:21 +09:00
extconf.rb
object_tracing.c Fix ObjectSpace.trace_object_allocations_stop to not raise if the tracepoint were not initialized 2020-08-19 08:13:09 -07:00
objspace.c enable constant cache on ractors 2021-01-05 02:27:58 +09:00
objspace.h
objspace_dump.c Make ext/objspace ASAN friendly 2020-09-28 08:20:23 -07:00