[zeromq-dev] zmq_msg_recv not blocking
Marcin Romaszewicz
marcin at brkt.com
Mon Nov 23 15:44:16 CET 2015
That should be rc != -1. If you receive, say, 3 bytes, your error code will
trigger. Those errno values could be from previous functions.
On Mon, Nov 23, 2015 at 6:15 AM, Jeff Shanab <jshanab at jfs-tech.com> wrote:
> The Guide has an assert (rc == 0) that of course exited the program.
> I replaced that with the if (rc != 0) block to get the error
>
> On Mon, Nov 23, 2015 at 8:31 AM, KIU Shueng Chuan <nixchuan at gmail.com>
> wrote:
>
>> Note that zmq_msg_recv() returns >= 0 on success.
>> On 23 Nov 2015 19:54, "Jeff Shanab" <jshanab at jfs-tech.com> wrote:
>>
>>> I have used a previous version of zmq with google protocol buffers a few
>>> years ago but am trying a simpler project with the newest zmq and have run
>>> into a problem.
>>>
>>> Imagine the weather server and client converted to the multipart message
>>> code in the guide. But when I call zmq_msg_recv(&part, subscriber,0), it
>>> does not block!
>>>
>>> do {
>>> /* Create an empty ØMQ message to hold the message part */
>>> zmq_msg_t part;
>>> int rc = zmq_msg_init (&part);
>>> assert (rc == 0);
>>> /* Block until a message is available to be received from socket
>>> */
>>> rc = zmq_msg_recv (&part, subscriber,0);
>>>
>>> if (rc != 0)
>>> {
>>> std::cout << "First msg Recv error :" << zmq_errno() <<
>>> zmq_strerror (zmq_errno()) << std::endl;
>>>
>>> boost::this_thread::sleep(boost::posix_time::milliseconds(250));
>>> continue;
>>> };
>>>
>>> rc = zmq_getsockopt (subscriber, ZMQ_RCVMORE, &more, &more_size);
>>> assert (rc == 0);
>>>
>>> ....
>>>
>>> With this code, I get
>>>
>>> First msg Recv error :35Resource temporarily unavailable
>>> First msg Recv error :60Operation timed out
>>> First msg Recv error :60Operation timed out
>>> First msg Recv error :60Operation timed out
>>> First msg Recv error :60Operation timed out
>>> First msg Recv error :60Operation timed out
>>> First msg Recv error :60Operation timed out
>>> First msg Recv error :60Operation timed out
>>> First msg Recv error :60Operation timed out
>>> First msg Recv error :60Operation timed out
>>> First msg Recv error :60Operation timed out
>>> First msg Recv error :60Operation timed out
>>> First msg Recv error :60Operation timed out
>>> First msg Recv error :60Operation timed out
>>> First msg Recv error :60Operation timed out
>>> First msg Recv error :60Operation timed o ...
>>>
>>> This is on OSX. I am going to try windows and linux after work tonight.
>>>
>>> Are there any known issues with 4.1.3, zmq_msg_recv and OSX ?
>>>
>>> _______________________________________________
>>> zeromq-dev mailing list
>>> zeromq-dev at lists.zeromq.org
>>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>>
>>>
>> _______________________________________________
>> zeromq-dev mailing list
>> zeromq-dev at lists.zeromq.org
>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>
>>
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20151123/5961794f/attachment.htm>
More information about the zeromq-dev
mailing list