lib/em-synchrony/em-multi.rb in em-synchrony-1.0.0 vs lib/em-synchrony/em-multi.rb in em-synchrony-1.0.1

- old
+ new

@@ -4,19 +4,21 @@ include EventMachine::Deferrable attr_reader :requests, :responses def initialize - @requests = [] + @requests = {} @responses = {:callback => {}, :errback => {}} end def add(name, conn) + raise 'Duplicate Multi key' if @requests.key? name + fiber = Fiber.current conn.callback { @responses[:callback][name] = conn; check_progress(fiber) } conn.errback { @responses[:errback][name] = conn; check_progress(fiber) } - @requests.push(conn) + @requests[name] = conn end def finished? (@responses[:callback].size + @responses[:errback].size) == @requests.size end