# File lib/em/deferrable.rb, line 122 122: def set_deferred_status status, *args 123: cancel_timeout 124: @deferred_status = status 125: @deferred_args = args 126: case @deferred_status 127: when :succeeded 128: if @callbacks 129: while cb = @callbacks.pop 130: cb.call(*@deferred_args) 131: end 132: end 133: @errbacks.clear if @errbacks 134: when :failed 135: if @errbacks 136: while eb = @errbacks.pop 137: eb.call(*@deferred_args) 138: end 139: end 140: @callbacks.clear if @callbacks 141: end 142: end