diff options
Diffstat (limited to 'src/select.cpp')
| -rw-r--r-- | src/select.cpp | 17 | 
1 files changed, 8 insertions, 9 deletions
| diff --git a/src/select.cpp b/src/select.cpp index 9d0970a..78d3afd 100644 --- a/src/select.cpp +++ b/src/select.cpp @@ -191,15 +191,8 @@ void zmq::select_t::loop ()          //  Destroy retired event sources.          if (retired) { -            fd_set_t::iterator it = fds.begin(); -            while (it != fds.end()) { -                if (it->fd == retired_fd) { -                    it = fds.erase(it); -                } -                else { -                    it++; -                } -            } +            fds.erase (std::remove_if (fds.begin (), fds.end (), +                zmq::select_t::is_retired_fd), fds.end ());              retired = false;          }      } @@ -209,3 +202,9 @@ void zmq::select_t::worker_routine (void *arg_)  {      ((select_t*) arg_)->loop ();  } + +bool zmq::select_t::is_retired_fd (const fd_entry_t &entry) +{ +    return (entry.fd == retired_fd); +} + | 
