Module: RactorRailsShim::Lifecycle

Defined in:
lib/ractor_rails_shim/roles/lifecycle.rb

Class Method Summary collapse

Class Method Details

.prepare_for_ractors!Object

Run after Rails.application.initialize! and BEFORE spawning worker Ractors. Makes every registered constant shareable (deep-freeze), freezes shareable class ivars, dispatches all framework patches, snapshots gem paths, and warms caches.

Idempotent; safe to call multiple times. Must run in the main Ractor.



24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/ractor_rails_shim/roles/lifecycle.rb', line 24

def self.prepare_for_ractors!
  PreSpawnSteps.apply_shareable_constants
  PreSpawnSteps.freeze_shareable_class_ivars
  PreSpawnSteps.install_framework_patches
  RactorRailsShim.snapshot_gem_paths!
  RactorRailsShim.snapshot_query_logs!
  RactorRailsShim.install_url_helpers_patch
  RactorRailsShim.fix_url_helpers_singleton_routes!
  Freezers::CacheWarmer.call
  Freezers::ClassIvarFreezer.call
  Freezers::GlobalClassIvarFreezer.call
  Freezers::GlobalConstantFreezer.call
  Freezers::MessagesConstantsFreezer.call
end