diff options
-rw-r--r-- | src/fq.cpp | 7 | ||||
-rw-r--r-- | src/lb.cpp | 6 |
2 files changed, 8 insertions, 5 deletions
@@ -148,8 +148,11 @@ bool zmq::fq_t::has_in () for (int count = active; count != 0; count--) { if (pipes [current]->check_read ()) return true; - current++; - if (current >= active) + + // Deactivate the pipe. + active--; + pipes.swap (current, active); + if (current == active) current = 0; } @@ -135,10 +135,10 @@ bool zmq::lb_t::has_out () if (pipes [current]->check_write ()) return true; + // Deactivate the pipe. active--; - if (current < active) - pipes.swap (current, active); - else + pipes.swap (current, active); + if (current == active) current = 0; } |