Commit a2c37725 authored by Martin Hurton's avatar Martin Hurton

Mention limitation of the device implementation

+ fix whitespace errors
+ drop some unnecessary parens
parent e8b701cb
...@@ -35,9 +35,12 @@ int zmq::device (class socket_base_t *insocket_, ...@@ -35,9 +35,12 @@ int zmq::device (class socket_base_t *insocket_,
if (rc != 0) if (rc != 0)
return -1; return -1;
// The algorithm below assumes ratio of request and replies processed // The algorithm below assumes ratio of requests and replies processed
// under full load to be 1:1. // under full load to be 1:1.
// TODO: The current implementation drops messages when
// any of the pipes becomes full.
int more; int more;
size_t moresz; size_t moresz;
zmq_pollitem_t items [] = { zmq_pollitem_t items [] = {
...@@ -56,12 +59,12 @@ int zmq::device (class socket_base_t *insocket_, ...@@ -56,12 +59,12 @@ int zmq::device (class socket_base_t *insocket_,
rc = insocket_->recv (&msg, 0); rc = insocket_->recv (&msg, 0);
if (unlikely (rc < 0)) if (unlikely (rc < 0))
return -1; return -1;
moresz = sizeof (more); moresz = sizeof more;
rc = insocket_->getsockopt (ZMQ_RCVMORE, &more, &moresz); rc = insocket_->getsockopt (ZMQ_RCVMORE, &more, &moresz);
if (unlikely (rc < 0)) if (unlikely (rc < 0))
return -1; return -1;
rc = outsocket_->send (&msg, more? ZMQ_SNDMORE: 0); rc = outsocket_->send (&msg, more? ZMQ_SNDMORE: 0);
if (unlikely (rc < 0)) if (unlikely (rc < 0))
return -1; return -1;
...@@ -75,12 +78,12 @@ int zmq::device (class socket_base_t *insocket_, ...@@ -75,12 +78,12 @@ int zmq::device (class socket_base_t *insocket_,
rc = outsocket_->recv (&msg, 0); rc = outsocket_->recv (&msg, 0);
if (unlikely (rc < 0)) if (unlikely (rc < 0))
return -1; return -1;
moresz = sizeof (more); moresz = sizeof more;
rc = outsocket_->getsockopt (ZMQ_RCVMORE, &more, &moresz); rc = outsocket_->getsockopt (ZMQ_RCVMORE, &more, &moresz);
if (unlikely (rc < 0)) if (unlikely (rc < 0))
return -1; return -1;
rc = insocket_->send (&msg, more? ZMQ_SNDMORE: 0); rc = insocket_->send (&msg, more? ZMQ_SNDMORE: 0);
if (unlikely (rc < 0)) if (unlikely (rc < 0))
return -1; return -1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment