diff options
-rw-r--r-- | src/fq.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -46,8 +46,11 @@ void zmq::fq_t::detach (reader_t *pipe_) { // Remove the pipe from the list; adjust number of active pipes // accordingly. - if (pipes.index (pipe_) < active) + if (pipes.index (pipe_) < active) { active--; + if (current == active) + current = 0; + } pipes.erase (pipe_); } @@ -55,6 +58,8 @@ void zmq::fq_t::kill (reader_t *pipe_) { // Move the pipe to the list of inactive pipes. active--; + if (current == active) + current = 0; pipes.swap (pipes.index (pipe_), active); } |