diff options
-rw-r--r-- | src/pipe.cpp | 4 | ||||
-rw-r--r-- | src/pipe.hpp | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/pipe.cpp b/src/pipe.cpp index 53dfb21..14a6ef4 100644 --- a/src/pipe.cpp +++ b/src/pipe.cpp @@ -170,6 +170,10 @@ void zmq::writer_t::rollback () zmq_msg_t msg; while (pipe->unwrite (&msg)) { + if (!(msg.flags & ZMQ_MSG_TBC)) { + pipe->write (msg); + break; + } zmq_msg_close (&msg); msgs_written--; } diff --git a/src/pipe.hpp b/src/pipe.hpp index 0ac7fc5..a4569e3 100644 --- a/src/pipe.hpp +++ b/src/pipe.hpp @@ -98,7 +98,7 @@ namespace zmq // message cannot be written because high watermark was reached. bool write (zmq_msg_t *msg_); - // Remove any unflushed messages from the pipe. + // Remove unfinished part of a message from the pipe. void rollback (); // Flush the messages downsteam. |