module Delayed::Threaded::SyncLifecycle

Constants

MUTEX

Public Class Methods

extended(base) click to toggle source
# File lib/delayed/threaded/sync_lifecycle.rb, line 7
def self.extended(base)
  klass = base.singleton_class
  klass.send :alias_method, :setup_lifecycle_impl, :setup_lifecycle
  klass.send :alias_method, :setup_lifecycle, :setup_lifecycle_sync
  klass.send :private, :setup_lifecycle_impl
end

Public Instance Methods

setup_lifecycle_sync() click to toggle source
# File lib/delayed/threaded/sync_lifecycle.rb, line 14
def setup_lifecycle_sync
  # not really necessary, but a plugin might expect setup to run exactly once
  (@lifecycle ||= nil) || synchronize do
    unless @lifecycle
      setup_lifecycle_impl
      #@lifecycle = Delayed::Lifecycle.new
      #lifecycle = @lifecycle
    end
    @lifecycle # make sure returns lifecycle (for DJ < 4.1 compat layer)
  end
end

Private Instance Methods

synchronize(&block) click to toggle source
# File lib/delayed/threaded/sync_lifecycle.rb, line 29
def synchronize(&block); MUTEX.synchronize(&block) end