From 10fbc78e5cab494c3af727f5ea451fdced1c9d95 Mon Sep 17 00:00:00 2001 From: Martin Sustrik Date: Fri, 22 Apr 2011 07:51:24 +0200 Subject: Assert during SUB socket termination fixed. Fair queueing algorithm was checking whether the current pipe is not closed in the middle of reading a multipart message. However, this is OK when the socket is closing down. Signed-off-by: Martin Sustrik --- src/fq.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/fq.cpp b/src/fq.cpp index 20dc769..ef68016 100644 --- a/src/fq.cpp +++ b/src/fq.cpp @@ -55,10 +55,9 @@ void zmq::fq_t::attach (reader_t *pipe_) void zmq::fq_t::terminated (reader_t *pipe_) { - // TODO: This is a problem with session-initiated termination. It breaks - // message atomicity. However, for socket initiated termination it's - // just fine. - zmq_assert (!more || pipes [current] != pipe_); + // Make sure that we are not closing current pipe while + // message is half-read. + zmq_assert (terminating || (!more || pipes [current] != pipe_)); // Remove the pipe from the list; adjust number of active pipes // accordingly. -- cgit v1.2.3