-// assumes caller holds rsm_mutex
-void rsm::net_repair(bool heal, lock &) {
- vector<string> m;
- cfg->get_view(vid_commit, m);
- for (unsigned i = 0; i < m.size(); i++) {
- if (m[i] != cfg->myaddr()) {
- handle h(m[i]);
- LOG("member " << m[i] << " " << heal);
- if (h.safebind()) h.safebind()->set_reachable(heal);
+void rsm::net_repair(bool heal, lock & rsm_mutex_lock) {
+ VERIFY(rsm_mutex_lock);
+ for (auto & mm : cfg->get_view(vid_commit)) {
+ if (mm != cfg->myaddr()) {
+ LOG << "member " << mm << " " << heal;
+ if (auto cl = rpcc::bind_cached(mm))
+ cl->set_reachable(heal);