From aaa07613d3d7ff1eafcec3d38769f806fae5ac5c Mon Sep 17 00:00:00 2001 From: Martin Sustrik Date: Wed, 1 Sep 2010 07:54:57 +0200 Subject: pipe being attached to the PAIR socket during its termination process is immediately asked to terminate itself --- src/pair.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/pair.cpp') diff --git a/src/pair.cpp b/src/pair.cpp index 8db2ffc..faea167 100644 --- a/src/pair.cpp +++ b/src/pair.cpp @@ -44,7 +44,6 @@ zmq::pair_t::~pair_t () void zmq::pair_t::xattach_pipes (class reader_t *inpipe_, class writer_t *outpipe_, const blob_t &peer_identity_) { - zmq_assert (!terminating); zmq_assert (!inpipe && !outpipe); inpipe = inpipe_; @@ -54,6 +53,12 @@ void zmq::pair_t::xattach_pipes (class reader_t *inpipe_, outpipe = outpipe_; outpipe_alive = true; outpipe->set_event_sink (this); + + if (terminating) { + register_term_acks (2); + inpipe_->terminate (); + outpipe_->terminate (); + } } void zmq::pair_t::terminated (class reader_t *pipe_) -- cgit v1.2.3