class EventMachine::Synchrony::Iterator

def inject(obj, foreach = nil, after = nil, &block)

def inject(obj, foreach = nil, after = nil, &block)
  if foreach and after
    super(obj, foreach, after)
  else
    fiber = Fiber.current
    result = nil
    after = Proc.new {|res| result = res; fiber.resume}
    super(obj, block, after)
    Fiber.yield
    result
  end
end