Module: Delayed::Threaded::SyncLifecycle

Defined in:
lib/delayed/threaded/sync_lifecycle.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(base) ⇒ Object



7
8
9
10
11
12
# 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

Instance Method Details

#setup_lifecycle_syncObject



14
15
16
17
18
19
20
21
22
23
24
# 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