From 4671108e571b442e5565c399c42d5e7c8f48bde8 Mon Sep 17 00:00:00 2001 From: "ganesh.vr" Date: Mon, 1 Jul 2013 15:57:06 +0900 Subject: [PATCH] LIBZMQ-541 issue fix --- src/dist.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) mode change 100644 => 100755 src/dist.cpp diff --git a/src/dist.cpp b/src/dist.cpp old mode 100644 new mode 100755 index d4c47a72..5b195653 --- a/src/dist.cpp +++ b/src/dist.cpp @@ -78,12 +78,19 @@ void zmq::dist_t::pipe_terminated (pipe_t *pipe_) { // Remove the pipe from the list; adjust number of matching, active and/or // eligible pipes accordingly. - if (pipes.index (pipe_) < matching) + if (pipes.index (pipe_) < matching) { + pipes.swap (pipes.index (pipe_), matching - 1); matching--; - if (pipes.index (pipe_) < active) + } + if (pipes.index (pipe_) < active) { + pipes.swap (pipes.index (pipe_), active - 1); active--; - if (pipes.index (pipe_) < eligible) + } + if (pipes.index (pipe_) < eligible) { + pipes.swap (pipes.index (pipe_), eligible - 1); eligible--; + } + pipes.erase (pipe_); }