[zeromq-dev] polling fd with czmq

Luca Boccassi luca.boccassi at gmail.com
Fri Oct 25 10:25:35 CEST 2019

On Thu, 2019-10-24 at 15:35 +0200, Arnaud Loonstra wrote:
> Hi all,
> I'm wondering what is the best approach to polling a non-zmq socket 
> using czmq. It doesn't seem documented?
> I can add a fd as follows:
> ...
> s=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1)
> zpoller_add(poller, &s);
> ...
> If I then poll zpoller_wait returns on activity however it's not a
> valid 
> zsock_t instance:
> zsock_t *which = (zsock_t *)zpoller_wait(poller, -1);
> zsock_is(which) will return false. I've found 'which' is just what
> you 
> added to the poller so if I cast to an int it will resolve to the 
> correct filedescriptor number.
> So either I cast it back to an int or I keep checking the pointer 
> addresses. However casting an int to zsock_t doesn't feel safe.
> So question is what is best/safest approach?
> Rg,
> Arnaud

Strange, that should work - the zpoller_add documentation is missing
it, but the zpoller_new doc clearly says a file handle is supported,
and the implementation confirms it - you should be able to pass it a
file descriptor as you are doing.

Did you by any chance compile libzmq with draft apis and the new
zmq_poller APIs? That changes the implementation quite a bit, and there
might be regressions yet unspotted.

Kind regards,
Luca Boccassi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: This is a digitally signed message part
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20191025/56b7360f/attachment.sig>

More information about the zeromq-dev mailing list