[zeromq-dev] Poll on pair socket

Doron Somech somdoron at gmail.com
Sat Nov 10 15:39:51 CET 2012


thanks, it is working now.

On Sat, Nov 10, 2012 at 4:34 PM, Pieter Hintjens <ph at imatix.com> wrote:

> Use ZMQ_POLLIN instead of POLLIN and it will work.
>
> -Pieter
>
> On Sat, Nov 10, 2012 at 11:14 PM, Doron Somech <somdoron at gmail.com> wrote:
> > I may get it wrong, but this is the code i'm using the poll is blocked
> > forever:
> >
> > int main (int argc, char *argv [])
> > {
> > void* ctx = zmq_ctx_new();
> >
> > void *p1 = zmq_socket(ctx, ZMQ_PAIR);
> > void *p2 = zmq_socket(ctx, ZMQ_PAIR);
> >
> > zmq_bind(p1, "inproc://d.inproc");
> > zmq_connect(p2, "inproc://d.inproc");
> >
> > char arr[1];
> > arr[0] = 1;
> >
> > zmq_send(p1, arr, 1, 0);
> >
> > zmq_pollitem_t item;
> > item.socket = p2;
> > item.events = POLLIN;
> >
> > int result = zmq_poll(&item, 1, -1);
> >
> > return 0;
> > }
> >
> > On Sat, Nov 10, 2012 at 4:07 PM, Pieter Hintjens <ph at imatix.com> wrote:
> >>
> >> Poll on PAIR sockets definitely works, we use this all the time.
> >>
> >> Can you make a minimal test case that shows the problem happening? It
> >> could be that you've simply made an error in how you're calling
> >> zmq_poll.
> >>
> >> -Pieter
> >>
> >>
> >> On Sat, Nov 10, 2012 at 9:43 PM, Doron Somech <somdoron at gmail.com>
> wrote:
> >> > Hi,
> >> >
> >> > I'm trying to build a reactor which will also listen to the monitor
> >> > socket.
> >> > the problem is that poll on a pair socket is not working.
> >> >
> >> > checking the code i found out that the send_activate_read is never
> >> > called on
> >> > a pair socket (which is causing the signaling on the socket the poll
> is
> >> > actually listen on).
> >> >
> >> > I don't want to create a thread for each socket i'm going to monitor,
> >> > other
> >> > alternative is to configure the socket with receive timeout of zero
> and
> >> > use
> >> > don't wait option.
> >> >
> >> > I'm not sure that the second solution is a good one, because I want
> one
> >> > thread to listen to both regular sockets and monitor sockets,
> >> > with that solution i have to do zmq_poll (with small timeout) and
> after
> >> > the
> >> > poll call the recv for all the monitoring sockets.
> >> >
> >> > Any suggestions?
> >> >
> >> > Thanks,
> >> >
> >> > Doron
> >> >
> >> > _______________________________________________
> >> > 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
> >
> _______________________________________________
> 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/20121110/aa4ae5fb/attachment.htm>


More information about the zeromq-dev mailing list