class ActiveSupport::Dependencies::Interlock

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

# sig/active_support/dependencies/interlock.rbs

class ActiveSupport::Dependencies::Interlock
  def done_running: () -> Thread::ConditionVariable
  def permit_concurrent_loads: () -> (PG::Result | ActiveRecord::Result)
  def start_running: () -> Integer
end

:nodoc:
:nodoc:

def done_running

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

def done_running: () -> Thread::ConditionVariable

This signature was generated using 14 samples from 2 applications.

def done_running
  @lock.stop_sharing
end

def done_unloading

def done_unloading
  @lock.stop_exclusive(compatible: [:load, :unload])
end

def initialize # :nodoc:

:nodoc:
def initialize # :nodoc:
  @lock = ActiveSupport::Concurrency::ShareLock.new
end

def loading(&block)

def loading(&block)
  @lock.exclusive(purpose: :load, compatible: [:load], after_compatible: [:load], &block)
end

def permit_concurrent_loads(&block)

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

def permit_concurrent_loads: () -> (PG::Result | ActiveRecord::Result)

This signature was generated using 53 samples from 3 applications.

def permit_concurrent_loads(&block)
  @lock.yield_shares(compatible: [:load], &block)
end

def raw_state(&block) # :nodoc:

:nodoc:
def raw_state(&block) # :nodoc:
  @lock.raw_state(&block)
end

def running(&block)

def running(&block)
  @lock.sharing(&block)
end

def start_running

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

def start_running: () -> Integer

This signature was generated using 11 samples from 1 application.

def start_running
  @lock.start_sharing
end

def start_unloading

def start_unloading
  @lock.start_exclusive(purpose: :unload, compatible: [:load, :unload])
end

def unloading(&block)

def unloading(&block)
  @lock.exclusive(purpose: :unload, compatible: [:load, :unload], after_compatible: [:load, :unload], &block)
end