module EventMachine::Deferrable

def errback &block


If status is succeeded, do nothing.
If status is failed, execute the errback immediately.
If there is no status, add an errback to an internal list.
--
a status of :failed. See #set_deferred_status for more information.
Specify a block to be executed if and when the Deferrable object receives
def errback &block
  return unless block
  @deferred_status ||= :unknown
  if @deferred_status == :failed
    block.call(*@deferred_args)
  elsif @deferred_status != :succeeded
    @errbacks ||= []
    @errbacks.unshift block # << block
  end
  self
end