summaryrefslogtreecommitdiff
path: root/src/pipe.cpp
diff options
context:
space:
mode:
authorMartin Sustrik <sustrik@250bpm.com>2010-05-20 18:02:34 +0200
committerMartin Sustrik <sustrik@250bpm.com>2010-05-20 18:02:34 +0200
commit7773fdddfb357145cb15faaa5228fb3b2d0f6f78 (patch)
tree25da4249813818f9504e49d58d46297ad7d9c2ef /src/pipe.cpp
parent091e92a11dec353e674cbacbf2455a48bdb4e01d (diff)
parent89783c37d2b8a7b5519eab7922b460449aa0bf3f (diff)
Merge branch 'master' of git@github.com:sustrik/zeromq2
Diffstat (limited to 'src/pipe.cpp')
-rw-r--r--src/pipe.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/pipe.cpp b/src/pipe.cpp
index 61ddf38..f592f8c 100644
--- a/src/pipe.cpp
+++ b/src/pipe.cpp
@@ -162,7 +162,7 @@ bool zmq::writer_t::write (zmq_msg_t *msg_)
return false;
}
- pipe->write (*msg_);
+ pipe->write (*msg_, msg_->flags & ZMQ_MSG_MORE);
if (!(msg_->flags & ZMQ_MSG_MORE))
msgs_written++;
return true;
@@ -172,11 +172,9 @@ void zmq::writer_t::rollback ()
{
zmq_msg_t msg;
+ // Remove all incomplete messages from the pipe.
while (pipe->unwrite (&msg)) {
- if (!(msg.flags & ZMQ_MSG_MORE)) {
- pipe->write (msg);
- break;
- }
+ zmq_assert (msg.flags & ZMQ_MSG_MORE);
zmq_msg_close (&msg);
msgs_written--;
}
@@ -206,7 +204,7 @@ void zmq::writer_t::term ()
const unsigned char *offset = 0;
msg.content = (void*) (offset + ZMQ_DELIMITER);
msg.flags = 0;
- pipe->write (msg);
+ pipe->write (msg, false);
pipe->flush ();
}