# 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