class IOPromise::Faraday::FaradayExecutorPool
Public Class Methods
new(*)
click to toggle source
Calls superclass method
# File lib/iopromise/faraday/executor_pool.rb, line 8 def initialize(*) super @hydra = ContinuableHydra.for_current_thread @hydra.iop_handler = self @monitors = {} end
Public Instance Methods
execute_continue()
click to toggle source
# File lib/iopromise/faraday/executor_pool.rb, line 39 def execute_continue # mark all pending promises as executing since they could be started any time now. # ideally we would do this on dequeue. @pending.each do |promise| begin_executing(promise) unless promise.started_executing? end @hydra.execute_continue end
monitor_add(io)
click to toggle source
# File lib/iopromise/faraday/executor_pool.rb, line 17 def monitor_add(io) @monitors[io] = ::IOPromise::ExecutorContext.current.register_observer_io(self, io, :r) end
monitor_ready(monitor, readiness)
click to toggle source
# File lib/iopromise/faraday/executor_pool.rb, line 35 def monitor_ready(monitor, readiness) @hydra.socket_is_ready(monitor.io, monitor.readable?, monitor.writable?) end
monitor_remove(io)
click to toggle source
# File lib/iopromise/faraday/executor_pool.rb, line 21 def monitor_remove(io) monitor = @monitors.delete(io) monitor.close unless monitor.nil? end
set_interests(io, interest)
click to toggle source
# File lib/iopromise/faraday/executor_pool.rb, line 26 def set_interests(io, interest) monitor = @monitors[io] monitor.interests = interest unless monitor.nil? end
set_timeout(timeout)
click to toggle source
# File lib/iopromise/faraday/executor_pool.rb, line 31 def set_timeout(timeout) self.select_timeout = timeout end