diff options
| author | Luke Gruber <luke.gruber@shopify.com> | 2025-06-12 15:13:08 -0400 |
|---|---|---|
| committer | John Hawthorn <john@hawthorn.email> | 2025-07-03 13:20:34 -0700 |
| commit | 4f4408e98933f65f9d5b1752c2892218f2224de3 (patch) | |
| tree | 8e86649d89ec2ba748cbf33297792d0ab1d52d3b /spec/ruby/shared/string | |
| parent | ed3fd94e77862c8e8a81a06f69cad95c1ec31619 (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/string')
0 files changed, 0 insertions, 0 deletions
