# 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