diff options
author | Koichi Sasada <ko1@atdot.net> | 2020-10-16 15:20:40 +0900 |
---|---|---|
committer | Koichi Sasada <ko1@atdot.net> | 2020-10-17 08:18:04 +0900 |
commit | f6661f50854e0cdccb03ee516a21ce62adf6c802 (patch) | |
tree | 72668d7b8a8cdbe7f84234bdd99e93a9049a7918 /vm_core.h | |
parent | 91ec5f9e39cf54dd7a157addb778293853571f13 (diff) | |
download | ruby-f6661f50854e0cdccb03ee516a21ce62adf6c802.tar.gz |
sync RClass::ext::iv_index_tbl
iv_index_tbl manages instance variable indexes (ID -> index).
This data structure should be synchronized with other ractors
so introduce some VM locks.
This patch also introduced atomic ivar cache used by
set/getinlinecache instructions. To make updating ivar cache (IVC),
we changed iv_index_tbl data structure to manage (ID -> entry)
and an entry points serial and index. IVC points to this entry so
that cache update becomes atomically.
Diffstat (limited to 'vm_core.h')
-rw-r--r-- | vm_core.h | 3 |
1 files changed, 1 insertions, 2 deletions
@@ -225,8 +225,7 @@ struct iseq_inline_cache_entry { }; struct iseq_inline_iv_cache_entry { - rb_serial_t ic_serial; - size_t index; + struct rb_iv_index_tbl_entry *entry; }; union iseq_inline_storage_entry { |