diff options
| -rw-r--r-- | src/req.cpp | 5 | ||||
| -rw-r--r-- | src/xrep.cpp | 17 | ||||
| -rw-r--r-- | src/xrep.hpp | 5 | ||||
| -rw-r--r-- | src/xreq.cpp | 2 | 
4 files changed, 9 insertions, 20 deletions
diff --git a/src/req.cpp b/src/req.cpp index da9dd0e..7dc97ea 100644 --- a/src/req.cpp +++ b/src/req.cpp @@ -55,9 +55,12 @@ int xs::req_t::xsend (msg_t *msg_, int flags_)          errno_assert (rc == 0);          bottom.set_flags (msg_t::more);          rc = xreq_t::xsend (&bottom, 0); -        if (rc != 0) +        if (rc != 0) { +            bottom.close ();              return -1; +        }          message_begins = false; +        bottom.close ();      }      bool more = msg_->flags () & msg_t::more ? true : false; diff --git a/src/xrep.cpp b/src/xrep.cpp index f0f2cde..007ed27 100644 --- a/src/xrep.cpp +++ b/src/xrep.cpp @@ -267,16 +267,6 @@ int xs::xrep_t::xrecv (msg_t *msg_, int flags_)      return 0;  } -int xs::xrep_t::rollback (void) -{ -    if (current_out) { -        current_out->rollback (); -        current_out = NULL; -        more_out = false; -    } -    return 0; -} -  bool xs::xrep_t::xhas_in ()  {      //  If we are in  the middle of reading the messages, there are @@ -310,9 +300,10 @@ bool xs::xrep_t::xhas_in ()  bool xs::xrep_t::xhas_out ()  { -    //  In theory, XREP socket is always ready for writing. Whether actual -    //  attempt to write succeeds depends on whitch pipe the message is going -    //  to be routed to. +    //  XREP socket is always ready for writing. Whether actual +    //  attempt to send will succeed depends on whether the pipe the message +    //  is routed to is available for writing. If it's not, message will be +    //  dropped.      return true;  } diff --git a/src/xrep.hpp b/src/xrep.hpp index 514d61d..8e16a4c 100644 --- a/src/xrep.hpp +++ b/src/xrep.hpp @@ -58,11 +58,6 @@ namespace xs          void xwrite_activated (xs::pipe_t *pipe_);          void xterminated (xs::pipe_t *pipe_); -    protected: - -        //  Rollback any message parts that were sent but not yet flushed. -        int rollback (); -      private:          //  Fair queueing object for inbound pipes. diff --git a/src/xreq.cpp b/src/xreq.cpp index dd57aba..1c6af9d 100644 --- a/src/xreq.cpp +++ b/src/xreq.cpp @@ -68,7 +68,7 @@ int xs::xreq_t::xrecv (msg_t *msg_, int flags_)          return 0;      } -    //  XREQ socket doesn't use identities. We can safely drop it and  +    //  XREQ socket doesn't use identities. We can safely drop them.      while (true) {          int rc = fq.recv (msg_, flags_);          if (rc != 0)  | 
