From 2dd55605ea3956413cb25cab705ffdbdb2e00da5 Mon Sep 17 00:00:00 2001 From: Martin Sustrik Date: Tue, 23 Feb 2010 22:13:56 +0100 Subject: recv fails after polling for IN on REQ socket --- src/req.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'src/req.cpp') diff --git a/src/req.cpp b/src/req.cpp index 735f0aa..833db9a 100644 --- a/src/req.cpp +++ b/src/req.cpp @@ -191,16 +191,21 @@ int zmq::req_t::xrecv (zmq_msg_t *msg_, int flags_) waiting_for_reply = false; reply_pipe = NULL; - return 0; } bool zmq::req_t::xhas_in () { - if (reply_pipe && reply_pipe->check_read ()) - return waiting_for_reply; + if (!waiting_for_reply || !reply_pipe_active) + return false; + + zmq_assert (reply_pipe); + if (!reply_pipe->check_read ()) { + reply_pipe_active = false; + return false; + } - return false; + return true; } bool zmq::req_t::xhas_out () -- cgit v1.2.3