LIBZMQ-541 fix

This commit is contained in:
WooSung 2013-06-27 23:20:14 +09:00
parent 8b6dcc8420
commit 1b5b18cba9

13
src/dist.cpp Normal file → Executable file
View File

@ -80,12 +80,19 @@ void zmq::dist_t::terminated (pipe_t *pipe_)
{ {
// Remove the pipe from the list; adjust number of matching, active and/or // Remove the pipe from the list; adjust number of matching, active and/or
// eligible pipes accordingly. // eligible pipes accordingly.
if (pipes.index (pipe_) < matching) if (pipes.index (pipe_) < matching) {
pipes.swap (pipes.index (pipe_), matching - 1);
matching--; matching--;
if (pipes.index (pipe_) < active) }
if (pipes.index (pipe_) < active) {
pipes.swap (pipes.index (pipe_), active - 1);
active--; active--;
if (pipes.index (pipe_) < eligible) }
if (pipes.index (pipe_) < eligible) {
pipes.swap (pipes.index (pipe_), eligible - 1);
eligible--; eligible--;
}
pipes.erase (pipe_); pipes.erase (pipe_);
} }