From 9f4d3767fed58ddfa52f63692c6169bfdbcec2e3 Mon Sep 17 00:00:00 2001 From: Martin Sustrik Date: Sun, 19 Jun 2011 12:48:36 +0200 Subject: Session termination error fixed When session is already terminating and reconnection happens at that point, the session should not create new pipe to its socket. Signed-off-by: Martin Sustrik --- src/session.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/session.cpp b/src/session.cpp index 8f29248..e700313 100644 --- a/src/session.cpp +++ b/src/session.cpp @@ -56,6 +56,7 @@ zmq::session_t::~session_t () void zmq::session_t::attach_pipe (pipe_t *pipe_) { + zmq_assert (!is_terminating ()); zmq_assert (!pipe); zmq_assert (pipe_); pipe = pipe_; @@ -175,7 +176,7 @@ void zmq::session_t::process_attach (i_engine *engine_, } // Create the pipe if it does not exist yet. - if (!pipe) { + if (!pipe && !is_terminating ()) { object_t *parents [2] = {this, socket}; pipe_t *pipes [2] = {NULL, NULL}; int hwms [2] = {options.rcvhwm, options.sndhwm}; -- cgit v1.2.3