3 class EMSynchrony < Faraday::Adapter
6 # Add requests to queue. The `request` argument should be a
7 # `EM::HttpRequest` object.
8 def add(request, method, *args, &block)
17 # Run all requests on queue with `EM::Synchrony::Multi`, wrapping
18 # it in a reactor and fiber if needed.
21 if !EM.reactor_running?
42 # Main `EM::Synchrony::Multi` performer.
44 multi = ::EM::Synchrony::Multi.new
47 method = "a#{item[:method]}".to_sym
49 req = item[:request].send(method, *item[:args])
50 req.callback(&item[:block])
52 req_name = "req_#{multi.requests.size}".to_sym
53 multi.add(req_name, req)
56 # Clear the queue, so parallel manager objects can be reused.
59 # Block fiber until all requests have returned.