[zeromq-dev] Req-Rep Deadlock
Kenneth Adam Miller
kennethadammiller at gmail.com
Tue Mar 3 00:34:32 CET 2015
So, I have the following code:
void connectToFrontEnd() {
std::cout << "connectToFrontEnd" << std::endl;
zsock_t *inproc_await = zsock_new_rep("inproc://frontend");
std::cout << "frontend exchange_addresses" << std::endl;
char * servrAddr = exchange_addresses("backendEndpoints",
"frontendEndpoints", "inproc://frontend");
std::cout << "frontend got opp addr: " << servrAddr << std::endl;
zsock_t *inproc = zsock_new_req(servrAddr);
zstr_send(inproc, "blah");
char *got = zstr_recv(inproc_await);
std::cout << "frontend sent blah, got: " << got << std::endl;
zstr_send(inproc_await, "");
zstr_recv(inproc);
std::cout << "frontend exiting" << std::endl;
zsock_destroy(&inproc);
zsock_destroy(&inproc_await);
}
void connectToBackEnd() {
std::cout << "connectToBackEnd" << std::endl;
zsock_t *inproc_await = zsock_new_rep("inproc://backend");
std::cout << "backend exchange_addresses" << std::endl;
char * servrAddr = exchange_addresses("frontendEndpoints",
"backendEndpoints", "inproc://backend");
std::cout << "backend got opp addr: " << servrAddr << std::endl;
zsock_t *inproc = zsock_new_req(servrAddr);
zstr_send(inproc, "bleh");
char * got = zstr_recv(inproc_await);
std::cout << "backend sent bleh, got: " << got << std::endl;
zstr_send(inproc_await, "");
zstr_recv(inproc);
std::cout << "backend exiting" << std::endl;
zsock_destroy(&inproc);
zsock_destroy(&inproc_await);
}
exchange_addresses sends the third argument off to the opposite side, so
connectToFrontEnd and connectToBackEnd receive "inproc://backend" and
"inproc://frontend" respectively. Just now, I ran it under a debugger and
it stopped at lines "char *got = zstr_recv(inproc_await);" and
"zstr_recv(inproc);".
I think somewhere there is a dropped message somehow... but I don't know
how.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20150302/c783190e/attachment.htm>
More information about the zeromq-dev
mailing list