mirror of
https://github.com/zeromq/libzmq.git
synced 2025-01-19 08:46:44 +01:00
Implement flow control for ZMQ_REP sockets
This commit is contained in:
parent
923609b092
commit
6badd204d5
14
src/rep.cpp
14
src/rep.cpp
@ -146,7 +146,6 @@ void zmq::rep_t::xrevive (class reader_t *pipe_)
|
|||||||
|
|
||||||
void zmq::rep_t::xrevive (class writer_t *pipe_)
|
void zmq::rep_t::xrevive (class writer_t *pipe_)
|
||||||
{
|
{
|
||||||
zmq_not_implemented ();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int zmq::rep_t::xsetsockopt (int option_, const void *optval_,
|
int zmq::rep_t::xsetsockopt (int option_, const void *optval_,
|
||||||
@ -163,16 +162,17 @@ int zmq::rep_t::xsend (zmq_msg_t *msg_, int flags_)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Implement this once queue limits are in-place. If the reply
|
|
||||||
// overloads the buffer, connection should be torn down.
|
|
||||||
zmq_assert (reply_pipe->check_write ());
|
|
||||||
|
|
||||||
// Push message to the selected pipe. If requester have disconnected
|
// Push message to the selected pipe. If requester have disconnected
|
||||||
// in the meantime, drop the reply.
|
// in the meantime, drop the reply.
|
||||||
if (reply_pipe) {
|
if (reply_pipe) {
|
||||||
bool written = reply_pipe->write (msg_);
|
bool written = reply_pipe->write (msg_);
|
||||||
zmq_assert (written);
|
if (written)
|
||||||
reply_pipe->flush ();
|
reply_pipe->flush ();
|
||||||
|
else
|
||||||
|
// The pipe is full; just drop the reference to
|
||||||
|
// the message content.
|
||||||
|
// TODO: Tear down the underlying connection.
|
||||||
|
zmq_msg_close (msg_);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
zmq_msg_close (msg_);
|
zmq_msg_close (msg_);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user