void Session::on_down(SharedRefPtr<Host> host) { host->set_down(); load_balancing_policy_->on_down(host); bool cancel_reconnect = false; if (load_balancing_policy_->distance(host) == CASS_HOST_DISTANCE_IGNORE) { // This permanently removes a host from all IO workers by stopping // any attempt to reconnect to that host. cancel_reconnect = true; } for (IOWorkerVec::iterator it = io_workers_.begin(), end = io_workers_.end(); it != end; ++it) { (*it)->remove_pool_async(host->address(), cancel_reconnect); } }