[zeromq-dev] zyre and zmq_poll problem
Sridhar Anandakrishnan
sxa17 at psu.edu
Thu Sep 11 14:04:00 CEST 2014
Hi, I am trying to poll on a zyre socket and it returns immediately with errno set to 88.
zyre version is 1.1.0 and libzmq is 4.1.0
Here is the output of the code (snippet below):
---
zyre: 1 1 0
zmq: 4 1 0
I: 14-09-10 11:01:57 (pine07) JOIN group=GLOBAL
zmq_poll err, 88
---
If I use zpoller the poller works properly for the zyre socket alone, but according to the docs, in order to use both a zmq socket and a file descriptor, I need to use zmq_poll()...
Any help appreciated.
Sincerely,
Sridhar
serfd opens /dev/null in this case for testing...
zyre_version(&major, &minor, &patch);
fprintf(stderr, "zyre: %d %d %d\n", major, minor, patch);
zmq_version(&major, &minor, &patch);
fprintf(stderr, "zmq: %d %d %d\n", major, minor, patch);
zyre_t *node = zyre_new("pine07");
assert(node);
zyre_set_verbose(node);
//zyre_set_name(node, "pine07");
ret = zyre_start(node);
assert(ret==0);
zyre_join(node, "GLOBAL");
zsock_t *nodesock = zyre_socket(node);
zmq_pollitem_t items[] = {
{ NULL, serfd, ZMQ_POLLIN, 0},
{ nodesock, 0, ZMQ_POLLIN, 0}
};
int npoll = sizeof(items) / sizeof(items[0]);
int timeout = 60000; // FIXME - define?
while(1) {
static char *sender, *ipaddr, *base = NULL, *hdr, *name;
char *msgstring;
zmsg_t *msg;
ret=zmq_poll(items, npoll, timeout);
if(ret<0) {
fprintf(stderr, "zmq_poll err, %d\n", errno);
}
More information about the zeromq-dev
mailing list