124: def set_deferred_status status, *args
125: cancel_timeout
126: @errbacks ||= nil
127: @callbacks ||= nil
128: @deferred_status = status
129: @deferred_args = args
130: case @deferred_status
131: when :succeeded
132: if @callbacks
133: while cb = @callbacks.pop
134: cb.call(*@deferred_args)
135: end
136: end
137: @errbacks.clear if @errbacks
138: when :failed
139: if @errbacks
140: while eb = @errbacks.pop
141: eb.call(*@deferred_args)
142: end
143: end
144: @callbacks.clear if @callbacks
145: end
146: end