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

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
https://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to