Expanding on your first point: the file descriptor only triggers read
notifications, and the notification means to query ZMQ_EVENTS. For
example, when a zmq socket becomes writable, the ZMQ_FD file descriptor
becomes readable, and you react to that by checking ZMQ_EVENTS and
discover the zmq socket can be written to.
 
Also you may be interested in https://github.com/jkarneges/qzmq
 
On Sat, Apr 30, 2016, at 12:32 PM, Kalle Huttunen wrote:
> The ZeroMQ FAQ (http://zeromq.org/area:faq#toc5) states in the "Why
> can't I use standard I/O multiplexing functions such as select() or
> poll() on ZeroMQ sockets?" question:
>
> > Note that there's a way to retrieve a file descriptor from ZeroMQ
> > socket (ZMQ_FD socket option) that you can poll on from version 2.1
> > onwards, however, there are some serious caveats when using it.
> > Check the documentation carefully before using this feature.
>
> I've prototyped integrating ZeroMQ socket receiving to Qt's and custom
> select() based event loops, and on the first glance everything seems
> to work.
>
> From the documentation I have identified two "caveats" that I handle
> in my code:
>
> 1. The ability to read from the returned file descriptor does not
>    necessarily indicate that messages are available to be read from
>    the socket
>
> This I have solved by checking ZMQ_EVENTS before reading from
> the socket.
>
> 2. Events are signaled in edge-triggered fashion
>
> This one I have solved by always receiving all the messages from the
> socket when the file descriptor signals.
>
> Are there some caveats that I'm missing?
>
> --
> Kalle Huttunen
> _________________________________________________
> zeromq-dev mailing list
> zeromq-dev@lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
 
_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to