summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/fq.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/fq.cpp b/src/fq.cpp
index e23e302..1836058 100644
--- a/src/fq.cpp
+++ b/src/fq.cpp
@@ -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);
}