summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAaron Patterson <tenderlove@ruby-lang.org>2021-01-21 09:52:56 -0800
committerAaron Patterson <tenderlove@ruby-lang.org>2021-01-21 09:55:18 -0800
commit0130e17a410d60a10e7041ce98748b8de6946971 (patch)
tree270030652712f35e7b7163ac2c2b80b883542adc /lib
parenta3efbda7128ef20b55505b32d1608ea48f80af4a (diff)
Always enabled read barrier even on GC.compact
Some objects can survive the GC before compaction, but get collected in the second compaction. This means we could have objects reference T_MOVED during "free" in the second, compacting GC. If that is the case, we need to invalidate those "moved" addresses. Invalidation is done via read barrier, so we need to make sure the read barrier is active even during `GC.compact`. This also means we don't actually need to do one GC before compaction, we can just do the compaction and GC in one step.
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions