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