Project

General

Profile

Search

Results (5)

Apply issues filter

Feature #22227 (Open): Per-Ractor GC: collect each Ractor's heap locally, stop the world only when needed
Companion PR: https://github.com/ruby/ruby/pu ... is proposal makes the default GC operate per Ractor. Each Ractor owns an objspace (a private heap) and collects it on its own thread without stopping any other Ractor ("local GC"). A stop-the-world collection o ... d: shareable objects, memory retained across Ractor boundaries, and the heaps of dead Ractors. With this change, allocation-heavy Ractor programs scale like forked processes, and Ractor communication can even beat interprocess communication; end-to-end single-Ractor workloads stay within 2-4% of current perfo ... ction 4.4). ## 1. Motivation Today all Ractors allocate from one shared objspace, and every GC stops every Ractor. This has two consequences: 1. GC pause time grows with the total heap of all Ractor... 08/04/2026 05:20 AM
Bug #22098 (Open): RUBY_INTERNAL_THREAD_EVENT_RESUMED runs without GVL held
Today, it's possible to get a deadlock when a ... be added to quite a few places. To maintain Ractor safety, it would also need to be invoked wit ... . I'm curious about your thoughts @byroot. 06/09/2026 09:23 PM
Bug #21295 (Open): macos-13 debug build failures
@Eregon [ruby/ruby-dev-builder](https://gi ... if one or more of the master builds fail. 04/29/2025 08:47 PM
Bug #20158 (Assigned): Ractor affects Coverage results
I have a large rspec test suite. I found that if I call a Ractor, the Coverage results are strongly affected, ... red. This happens even if I only ever call a Ractor before the library or rspec are required. ... lper.rb of other large suites: ```ruby # Ractor.new { nil } # uncomment this to affect cover ... is greatly reduced and unstable when calling Ractor above p Coverage.result.values.sum { |arr ... ub.com/simplecov-ruby/simplecov/issues/1058). 01/07/2024 03:12 PM
Bug #19364 (Assigned): Issue with tracepoint enable/disable across ractors
This sometimes segfaults: ```ruby def test_enable_disable_in_multiple_ractors_with_target rs = [] 100.times do |i| ... end end 100.times do |i| rs << Ractor.new(i) do |j| meth = :"my_method_to_change_for_tracing_#{j}" tp = TracePoint.new(:line) { } # local to ractor 100.times do tp.enable(targe ... raise end test_enable_disable_in_multiple_ractors_with_target() ``` Changing iseq internals is done without the VM lock. This is true in Tracepoint#enable and Tracepoint#disable methods. I have a patch coming. 01/21/2023 10:54 PM
    (1-5/5)