From ac90b7e0ba497bfec09d7a69a2e01dc6d94a9c9a Mon Sep 17 00:00:00 2001 From: Brian Buchanan Date: Fri, 11 Jun 2010 08:03:34 +0200 Subject: issue 35 - ZMQ_RCVMORE sometimes erroneously returns false --- AUTHORS | 1 + src/socket_base.cpp | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 0eba721..3538b1d 100644 --- a/AUTHORS +++ b/AUTHORS @@ -5,6 +5,7 @@ Alexej Lotz Asko Kauppi Barak Amar Bernd Prager +Brian Buchanan Chris Wong Conrad D. Steenberg Dhruva Krishnamurthy diff --git a/src/socket_base.cpp b/src/socket_base.cpp index eddb297..62a7465 100644 --- a/src/socket_base.cpp +++ b/src/socket_base.cpp @@ -424,7 +424,14 @@ int zmq::socket_base_t::recv (::zmq_msg_t *msg_, int flags_) return -1; } ticks = 0; - return xrecv (msg_, flags_); + + rc = xrecv (msg_, flags_); + if (rc == 0) { + rcvmore = msg_->flags & ZMQ_MSG_MORE; + if (rcvmore) + msg_->flags &= ~ZMQ_MSG_MORE; + } + return rc; } // In blocking scenario, commands are processed over and over again until -- cgit v1.2.3