Method: ConcurrentWorker::Worker#result_handle_thread

Defined in:
lib/concurrent_worker/worker.rb

#result_handle_thread(&recv_block) ⇒ Object



96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/concurrent_worker/worker.rb', line 96

def result_handle_thread(&recv_block)
  Thread.new do
    Thread.handle_interrupt(Object => :never) do
      begin
        Thread.handle_interrupt(Object => :immediate) do
          recv_block.call
        end
      ensure
        req_counter_close
        channel_close
        call_retired_callbacks
      end
    end
  end
end