issue 35 - ZMQ_RCVMORE sometimes erroneously returns false

This commit is contained in:
Brian Buchanan 2010-06-11 08:03:34 +02:00 committed by Martin Sustrik
parent 5ee355d188
commit ac90b7e0ba
2 changed files with 9 additions and 1 deletions

View File

@ -5,6 +5,7 @@ Alexej Lotz <alexej.lotz@arcor.de>
Asko Kauppi <askok@dnainternet.net>
Barak Amar <barak.amar@gmail.com>
Bernd Prager <bernd@prager.ws>
Brian Buchanan <bwb@holo.org>
Chris Wong <chris@chriswongstudio.com>
Conrad D. Steenberg <conrad.steenberg@caltech.edu>
Dhruva Krishnamurthy <dhruva@ymail.com>

View File

@ -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