class Protobuf::Rpc::Zmq::Worker
def run
def run poller = ::ZMQ::Poller.new poller.register_readable(@backend_socket) poller.register_readable(@shutdown_socket) # Send request to broker telling it we are ready write_to_backend([::Protobuf::Rpc::Zmq::WORKER_READY_MESSAGE]) loop do rc = poller.poll(500) if rc == 0 && !running? break # The server was shutdown and no requests are pending elsif rc == -1 break # Something went wrong elsif rc > 0 ::Thread.current[:busy] = true process_request ::Thread.current[:busy] = false end end ensure teardown end