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