[zeromq-dev] missing events ZMQ_FD / ZMQ_EVENTS
Paul Colomiets
paul at colomiets.name
Mon Apr 23 21:13:54 CEST 2012
Hi Gerhard,
On Mon, Apr 23, 2012 at 3:53 PM, Gerhard Lipp <gelipp at googlemail.com> wrote:
> Hello,
>
> I can observe the same behavior as stated here
> (http://lists.zeromq.org/pipermail/zeromq-dev/2011-November/014615.html).
> What I observe is also a XREP/XREQ (ROUTER/DEALER) prob, where the
> XREQ is waiting forever to receive a message (which has been
> definitely sent). When I poll (timer based) the ZMQ_EVENTs, the XREQ
> is readable as expected. I am using libev (select based) for doing IO
> and I am aware of the edge-based trigger behaviour (I am
> reading/forwarding messages until ZMQ_EVENTs does not include the
> ZMQ_POLLIN bit any more).
>
> What is the status of this issue?
> Unfortunately my setup is a bit complicated to share, but i would like
> to help as much as possible.
>
We are using zeromq with libev without any issues. The only non-obvious
thing is that even if you doing send to a socket, you need to check whether
it became readable (and vice versa). You can look at the code at:
https://github.com/tailhook/zerogw/blob/master/src/http.c:300
It looks like:
// Must wake up reading and on each send, because the way zmq sockets work
ev_feed_event(root.loop, &route->zmq_forward.socket._watch, EV_READ);
For simplicity we are just feeding libev event when doing send, so it's
checked for reading at the next loop iteration (And we never block for
writing, if you care)
--
Paul
More information about the zeromq-dev
mailing list