class ActiveSupport::Concurrency::LoadInterlockAwareMonitor

Experimental RBS support (using type sampling data from the type_fusion project).

# sig/active_support/concurrency/load_interlock_aware_monitor.rbs

class ActiveSupport::Concurrency::LoadInterlockAwareMonitor < ActiveSupport::Concurrency::Monitor
  def mon_enter: () -> true
  
  type ActiveSupport__Concurrency__LoadInterlockAwareMonitor_synchronize_return_value = nil | PG::Result | ActiveRecord::ConnectionAdapters::RealTransaction | ActiveRecord::Result | Thread::ConditionVariable | false | ActiveRecord::ConnectionAdapters::SavepointTransaction
  
  def synchronize: () -> ActiveSupport__Concurrency__LoadInterlockAwareMonitor_synchronize_return_value
end

the lock.
A monitor that will permit dependency loading while blocked waiting for

def mon_enter

Experimental RBS support (using type sampling data from the type_fusion project).

def mon_enter: () -> true

This signature was generated using 143 samples from 2 applications.

Enters an exclusive section, but allows dependency loading while blocked
def mon_enter
  mon_try_enter ||
    ActiveSupport::Dependencies.interlock.permit_concurrent_loads { super }
end

def synchronize(&block)

Experimental RBS support (using type sampling data from the type_fusion project).

type ActiveSupport__Concurrency__LoadInterlockAwareMonitor_synchronize_return_value = nil | PG::Result | ActiveRecord::ConnectionAdapters::RealTransaction | ActiveRecord::Result | Thread::ConditionVariable | false | ActiveRecord::ConnectionAdapters::SavepointTransaction

def synchronize: () -> ActiveSupport__Concurrency__LoadInterlockAwareMonitor_synchronize_return_value

This signature was generated using 146 samples from 2 applications.

def synchronize(&block)
  Thread.handle_interrupt(EXCEPTION_NEVER) do
    mon_enter
    begin
      Thread.handle_interrupt(EXCEPTION_IMMEDIATE, &block)
    ensure
      mon_exit
    end
  end
end