Class: IOPromise::Dalli::DalliExecutorPool

Inherits:
ExecutorPool::Base
  • Object
show all
Defined in:
lib/iopromise/dalli/executor_pool.rb

Instance Method Summary collapse

Constructor Details

#initialize ⇒ DalliExecutorPool

Returns a new instance of DalliExecutorPool.



8
9
10
11
12
# File 'lib/iopromise/dalli/executor_pool.rb', line 8

def initialize(*)
  super

  @iop_monitor = nil
end

Instance Method Details

#close_socket ⇒ Object



28
29
30
31
32
33
# File 'lib/iopromise/dalli/executor_pool.rb', line 28

def close_socket
  unless @iop_monitor.nil?
    @iop_monitor.close
    @iop_monitor = nil
  end
end

#connected_socket(sock) ⇒ Object



22
23
24
25
26
# File 'lib/iopromise/dalli/executor_pool.rb', line 22

def connected_socket(sock)
  close_socket

  @iop_monitor = ::IOPromise::ExecutorContext.current.register_observer_io(self, sock, :r)
end

#dalli_server ⇒ Object



14
15
16
# File 'lib/iopromise/dalli/executor_pool.rb', line 14

def dalli_server
  @connection_pool
end

#execute_continue ⇒ Object



18
19
20
# File 'lib/iopromise/dalli/executor_pool.rb', line 18

def execute_continue
  dalli_server.execute_continue
end

#monitor_ready(monitor, readiness) ⇒ Object



35
36
37
# File 'lib/iopromise/dalli/executor_pool.rb', line 35

def monitor_ready(monitor, readiness)
  dalli_server.async_io_ready(monitor.readable?, monitor.writable?)
end

#set_interest(direction, interested) ⇒ Object



39
40
41
42
43
44
45
# File 'lib/iopromise/dalli/executor_pool.rb', line 39

def set_interest(direction, interested)
  if interested
    @iop_monitor.add_interest(direction)
  else
    @iop_monitor.remove_interest(direction)
  end
end