summaryrefslogtreecommitdiff
path: root/spec/ruby/shared/queue
diff options
context:
space:
mode:
authorLuke Gruber <luke.gruber@shopify.com>2025-06-12 15:13:08 -0400
committerJohn Hawthorn <john@hawthorn.email>2025-07-03 13:20:34 -0700
commit4f4408e98933f65f9d5b1752c2892218f2224de3 (patch)
tree8e86649d89ec2ba748cbf33297792d0ab1d52d3b /spec/ruby/shared/queue
parented3fd94e77862c8e8a81a06f69cad95c1ec31619 (diff)
Get transcoding to work across ractors by locking certain operations
Ex: `str.encode` and `str.encode!` work across ractors now. The global table `transcoder_table` needs a lock around each st_lookup/st_insert, and it's a two-level table so the second level also needs to be locked around insertion/deletion. In addition to this, the transcoder entries (values in the second-level hash table) need to be locked around retrieving them and loading them as they are loaded lazily. The transcoding objects (`Encoding::Converter`) can't be made shareable, so their operations don't need to be locked.
Diffstat (limited to 'spec/ruby/shared/queue')
0 files changed, 0 insertions, 0 deletions