lib/ffi-rzmq/socket.rb in ffi-rzmq-0.7.1 vs lib/ffi-rzmq/socket.rb in ffi-rzmq-0.7.2

- old
+ new

@@ -346,14 +346,22 @@ message.close end end private + + def noblock? flag + (NOBLOCK & flag) == NOBLOCK + end def _recv message, flags = 0 result_code = LibZMQ.zmq_recv @socket, message.address, flags - flags != NOBLOCK ? error_check(ZMQ_RECV_STR, result_code) : error_check_nonblock(result_code) + if noblock?(flags) + error_check_nonblock(result_code) + else + error_check(ZMQ_RECV_STR, result_code) + end end # Calls to ZMQ.getsockopt require us to pass in some pointers. We can cache and save those buffers # for subsequent calls. This is a big perf win for calling RCVMORE which happens quite often. # Cannot save the buffer for the IDENTITY.