From 27e83cc5258e191a7d5977e202046447df7896b9 Mon Sep 17 00:00:00 2001 From: Mikko Koppanen Date: Wed, 15 Dec 2010 20:10:27 +0100 Subject: Fixes assertion on pipe.cpp:237 when swap fills up. Fixes swap::full () functionality Signed-off-by: Mikko Koppanen --- src/swap.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/swap.cpp') diff --git a/src/swap.cpp b/src/swap.cpp index e3cc63e..b1add37 100644 --- a/src/swap.cpp +++ b/src/swap.cpp @@ -189,10 +189,23 @@ bool zmq::swap_t::empty () return read_pos == write_pos; } +/* bool zmq::swap_t::full () { - return buffer_space () == 1; + // Check that at least the message size can be written to the swap. + return buffer_space () < (int64_t) (sizeof (size_t) + 1); } +*/ + +bool zmq::swap_t::fits (zmq_msg_t *msg_) +{ + // Check whether whole binary representation of the message + // fits into the swap. + size_t msg_size = zmq_msg_size (msg_); + if (buffer_space () <= (int64_t) (sizeof msg_size + 1 + msg_size)) + return false; + return true; + } void zmq::swap_t::copy_from_file (void *buffer_, size_t count_) { -- cgit v1.2.3