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 <sustrik@250bpm.com>
This commit is contained in:
Martin Sustrik 2011-04-22 07:51:24 +02:00
parent e0246e32d7
commit 10fbc78e5c

View File

@ -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.