        # File lib/em/future.rb, line 44
    44:             def future arg, cb=nil, eb=nil, &blk
    45:                 arg = arg.call if arg.respond_to?(:call)
    46:
    47:                 if arg.respond_to?(:set_deferred_status)
    48:                     if cb || eb
    49:                         arg.callback(&cb) if cb
    50:                         arg.errback(&eb) if eb
    51:                     else
    52:                         arg.callback(&blk) if blk
    53:                     end
    54:                 end
    55:
    56:                 arg
    57:             end