Class: EM::Protocols::Zmq2::ReqFiber

Inherits:
ReqCb
  • Object
show all
Defined in:
lib/map_reduce/socket/req_fiber.rb

Instance Method Summary collapse

Instance Method Details

#send_request(data, &blk) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/map_reduce/socket/req_fiber.rb', line 3

def send_request(data, &blk)
  fib = Fiber.current
  timer = nil
  request_id = super(data) do |message|
    EM.cancel_timer(timer)
    fib.resume(message)
  end
  if request_id
    timer = EM.add_timer(10) {
      MapReduce.logger.info("TIMEOUT")
      cancel_request(request_id)
    }
  end
  if block_given?
    blk.call Fiber.yield
  else
    Fiber.yield
  end
end