        # File lib/em/future.rb, line 44
    44:       def self.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