Luke Gruber
Luke Gruber
This fixes segfaults and errors of the type "Encoding not found" when using encoding-related methods and internal encoding c functions across ractors.
Allow ractors to be used within a fiber scheduler context. Currently, only Ractor.new { ... }.value or Ractor.new { ... }.join are supported and tested. When calling Ractor#join or Ractor#value...
In commit 12f7ba5ed4a, ractor safety was added to String#crypt, however in certain cases it can cause a deadlock. When we lock a native mutex, we cannot allocate ruby objects because...
Ex: `str.encode` and `str.encode!` work across ractors now. I'm not certain that these are all the locks we need, there may be more that I missed. However, it's certainly a...
* lock around overloaded_cme_table, because there can be deletions from this table * lock around modification of iclass m_tbl and iclass cc_tbl * Add assertions we've locked VM when accessing/modifying...
The following code had issues because `autoload` was not calling into the appropriate ractor autoload code: ```ruby require "tmpdir" rs = [] tmpdir = Dir.mktmpdir("autoload") path = File.join(tmpdir, "a.rb") File.open(path,...
Running a debug build, the following code can result in an infinite loop: ```ruby rs = 100.times.map do Ractor.new do ths = 100.times.map do Thread.new do sleep 2 end end...
### The problem I searched for similar problems, sorry if this has been filed already. Running `bundle install --verbose` doesn't show the compiler invocation commands for native extensions. I want...
While working on ractor-local tracepoints, I noticed you could make `TracePoint` objects ractor-shareable with `Ractor.make_shareable`. This shouldn't be the case because this typed data type doesn't have the `RUBY_TYPED_FROZEN_SHAREABLE` flag...
Before this change, GC'ing any Ractor object caused you to lose all enabled tracepoints across all ractors (even main). Now tracepoints are ractor-local and this doesn't happen. Internal events are...